資料結構 棧 (十) 使用棧實現佇列

2021-09-13 13:31:25 字數 483 閱讀 3907

使用兩個棧模擬佇列,比如輸入:1 2 3 4,則要求輸出仍是:1 2 3 4

1、有兩個棧,乙個用來存放入隊資料(資料棧),乙個用來輔助(輔助棧)實現資料出隊。

2、資料新增時,會依次壓人棧,取資料時會取棧頂元素,但要模擬佇列的先進先出,所以就得取棧底元素,那麼輔助棧就派上用場了,把資料棧的元素依次彈出到輔助棧,保留最後乙個元素,資料棧就直接把元素彈出,這時資料棧就已經空了。

3、輔助棧的元素依次壓人資料棧,這樣我們就成功取到了棧底元素。

public class stack2queue 

public object poll()

if (stack1.size() == 1)

} else

return o;

}public int length()

public static void main(string args)

}}

資料結構 佇列 (十二) 佇列實現棧

使用兩個佇列實現棧,要滿足 先出,比如輸入 1 2 3 4 5,那麼輸出就應該是 5 4 3 2 1 使用兩個佇列,分別是資料佇列和輔助隊裡,1 資料新增到資料佇列中 2 元素出棧時,將有資料的佇列元素 保留最後乙個元素 移動到無資料的佇列 3 將最後乙個元素出隊,正式所需要的出棧資料 system...

資料結構 棧 佇列

二 佇列 注 鏈式儲存 定義鍊錶元素所儲存的資料型別 以int為例 typedef int elemtype 定義棧的結點結構及結點指標型別 typedef struct stacknode stacknode,stacknodeptr 定義指向棧的結構 typedef struct linksta...

資料結構 棧和佇列 順序棧

順序棧 main.c include include sqstack.h intmain push s,data selemtype x while isemtpy s destroystack s return0 sqstack.c include include include sqstack....