實現方法:
假設兩個棧 a b都為空,可以認為棧a提供入佇列的功能,棧b提供出佇列的功能。
入佇列:入棧a
出佇列:
* 如果棧b不為空,直接彈出棧b的資料。
* 如果棧b為空,則依次彈出棧a的資料,放入棧b中,再彈出棧b的資料。
實現如下:
#include
#include
using
namespace
std;
template
struct myqueue
t front()
}return s2.top();
}void pop()
}if (!s2.empty())
s2.pop();
}stack
s1;stack
s2;};int main()
for (i = 0; i < 10; ++i)
getchar();
return
0;}
用兩個棧實現佇列 及 兩個佇列實現棧功能
最近筆試遇到這個問題,感覺蠻有意思的,分析看看 一 問 用兩個棧實現乙個佇列的功能,要求給出演算法和思路 示意圖 答 設2個棧a,b,初始化為空 入隊 將新元素push入棧a 出隊 1 判斷棧b是否為空 2 如果不為空,則將棧a中所有元素依次pop出並push到棧b 3 將棧b的棧頂元素pop出 說...
用兩個棧實現佇列 用兩個佇列實現棧
劍指offer 面試題7 用兩個棧實現佇列。templateclass cqueue 我們試著用兩個棧來模擬佇列的操作,發現如下可行操作 完整 實現 面試題7 用兩個棧實現佇列 分別完成在隊尾插入結點和在隊頭刪除結點的功能。date 2014 06 27 include include includ...
用兩個棧實現佇列與用兩個佇列實現棧
pragma once要在標頭檔案的最開始加入這條雜注,就能夠保證標頭檔案只被編譯一次 pragma once是編譯器相關的,就是說即使這個編譯系統上有效,但在其他編譯系統也不一定可以,不過現在基本上已經是每個編譯器都有這個雜注了。用兩個棧實現佇列 每個模板函式的實現都需要加template模板列表...