使用兩個棧模擬佇列,比如輸入: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....