分為棧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...