王道資料結構3 2 5 3 用兩個棧模擬佇列

2021-09-28 14:27:22 字數 473 閱讀 2673

分為棧s1和s2,每次入隊前,先檢查s1是否滿了,滿了還得保證s2為空,這樣才能全部放入s2中再入棧。每次出隊前,檢查s2是否為空,若空,則從s1全部放入,再出棧。隊滿的情況就是s1和s2都滿了,隊空的情況就是s1和s2都空了。

int enqueue(stack &s1,stack &s2,elemtype e)

if(stackoverflow(s1)&&stackoverflow(s2))

if(stackoverflow(s1)&&!stackoverflow(s2))

push(s1,e);

return 1;

}}void dequeue(stack &s1,stack &s2,elemtype &e)else if(stackempty(s2)&&!stackempty(s1))

pop(s2,e);

}else return ;

}

用兩個佇列實現棧結構

首先定義乙個date佇列,然後定義乙個help佇列,help佇列輔助date佇列。push 每次加數時,加入到date佇列中。pop 先將date佇列中的前n 1個數 留下最後乙個數在date佇列 轉到help佇列中去,然後給使用者返回date佇列中的最後乙個數,最後將date佇列和help佇列換個...

資料結構中用兩個佇列實現棧

棧 後進先出 lifo last in first out 最後插入的元素最先出來。佇列 先進先出 fifo first in first out 最先插入的元素最先出來。圖 1 當棧裡面插入元素 abcd 的時候,元素a在棧底 最後出去 d在棧頂 最先出去 圖 2 將元素 abc 從q1中頭刪,然...

用兩個棧實現佇列 用兩個佇列實現棧

劍指offer 面試題7 用兩個棧實現佇列。templateclass cqueue 我們試著用兩個棧來模擬佇列的操作,發現如下可行操作 完整 實現 面試題7 用兩個棧實現佇列 分別完成在隊尾插入結點和在隊頭刪除結點的功能。date 2014 06 27 include include includ...