自畫草圖:
1 2 3 4向s1壓棧
s1彈棧,元素為4 3 2 1
4 3 2 1壓向s2
s2彈棧為1 2 3 4
即符合隊的特徵先進先出
設計思路:
1.s1棧往裡壓資料
2.s2棧只負責彈資料
3.s2彈棧前,先判斷s2是否為空棧,如果是空棧,判斷s1是否是空棧,都為空棧則隊空
4.s1不為空棧則往s2壓資料
5.s2出棧
#include
#include
//系統棧
using namespace std;
//倆棧實現佇列
class myqueue
//出隊 s2彈棧
void
dequeue
(int
&num)
//把s1的元素彈出來壓入s2中
while
(!s1.
empty()
)}//s2彈棧,即出隊
用倆個棧實現佇列
棧 佇列 一 題目 感謝 提供的題目 用倆個棧實現佇列。某佇列的宣告如下 templateclass cqueue cqueue void deletehead remove a element from head private stackm stack in stackm stack out 分...
用倆個棧實現佇列
思路 棧是先進後出的,佇列是先進先出的,所以要想讓先壓進棧的元素先出來,只通過乙個棧是實現不了的,但我們可以通過將棧1的資料取出再壓入棧2中,這樣在棧1底部的 也就是先壓棧的 資料就會到棧2的頂部,再將其取出,就可以實現佇列先進先出了。include include include using na...
57 用倆個棧實現佇列
57.用倆個棧實現佇列。題目 某佇列的宣告如下 83templateclass cqueue cqueue void deletehead remove a element from head private stackm stack1 stackm stack2 分析 從上面的類的宣告中,我們發現...