棧是先進後出,佇列是先進先出操作,用兩個棧可以實現佇列操作。先把資料壓入其中乙個棧,棧頂元素最後進入,然後在把棧裡元素壓入另外乙個棧,則原來棧頂元素變為棧底元素,原來棧底元素變為棧頂元素,然後對第二個棧彈出操作,則彈出的就是最先進入第乙個棧的元素了,這就實現了佇列操作,先進先出。
#include
using namespace std
;struct stacks1,s2;
struct queueq;
int main()
//棧1資料彈出至棧2
while(s1.top > 0)
//棧2資料彈出
while(s2.top > 0)
//佇列操作
while(q.first
.tail)
cout<;
return 0
;}
用兩個棧模擬佇列
本文參考了嚴蔚敏的 資料結構 由於佇列先進先出,而棧後進先出,用兩個棧就可以模擬佇列 include using namespace std define null 0 define ok 1 define yes 1 define no 0 define error 0 define false ...
用兩個棧模擬佇列
問題 如何用兩個堆疊模擬實現乙個佇列?如果這兩個堆疊的容量分別是m和n m n 你的方法能保證的佇列容量是多少?如何模擬?首先棧是先進後出,佇列是先進先出,因此二者的差別主要在於進出的順序。假設有棧a n b m 當把n個資料全部放入棧a,此時a棧頂是n,棧底是1。再將a內的資料出棧存入棧b,此時棧...
用兩個棧模擬佇列
pragma once define ndebug include include includeusing namespace std include cmystack.h templateclass cqueue return stack2.top private stackstack1 sta...