資料結構 雙端棧

2021-10-06 23:49:03 字數 858 閱讀 3472

定義:乙個線性表的兩端當做棧底分別進行入棧和出棧的操作,主要利用了棧"棧底位置不變,而棧頂位置動態變化"的特性。

我們把雙端棧叫做arraydoubleendstack,雙端棧是線性表的一種,更是棧的乙個特殊的分類,所以我們可以用動態陣列和棧的思想來實現雙端棧,畢竟由於其操作的特殊性,並不能借助arraylist或者arraystack實現,所以這裡需要從頭開始實現雙端棧

package 動態陣列;

public class arraydoubleendstack

//入棧操作

public void push(e element,int stackid)

switch (stackid)

}//出棧操作

public e pop(int stackid)

e ret =null;

switch(stackid)

//如果元素個數<=len/4 && len>default_size時,就要進行縮容

if(size(0)+size(1)==data.length/4&&data.length>default_size)

return ret;

}private void resize(int newlength)

//再去處理右端棧

int index= rtop;

for(int i=newlength-size(1);i=rtop;i--)

else}}

return sb.tostring();}}

資料結構 棧的儲存結構(二)雙端棧

棧的儲存結構 一 順序棧 棧的儲存結構 二 雙端棧 棧的儲存結構 三 鏈棧 棧的運用 一 無括號表示式求值 棧的運用 二 無括號表示式求值修正版 include include define maxsize 100 雙端棧需要有2個棧頂指標 底在2端 typedef struct stackstac...

資料結構之雙端佇列

摘要 有時候乙個佇列可能需要能從兩端進出,這時候稱呼它為雙端佇列。具體思路很簡單,從 可以直接看出來。include stdafx.h include malloc.h include stdlib.h typedef struct dequeuerecord queue struct dequeu...

python資料結構 雙端佇列

deque,全名double ended queue 佇列和棧的性質的資料結構 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。usr bin env python coding utf 8 created by xuehz on 2017 ...