兩個佇列實現棧和兩個棧實現佇列

2021-06-05 16:56:00 字數 1071 閱讀 3088

棧:先進後出

佇列:先進先出

1:兩個佇列實現棧:

佇列a

佇列b

入棧:入佇列a, 1,2,3,4 入棧,在佇列a裡為 a: 1,2,3,4

出棧,將佇列a中的元素入佇列b直到佇列a裡的元素只剩下乙個,則隊a為4,隊b為1,2,3,a:4,b:1,2,3,輸出a隊頭4

#include #include using namespace std;

queuea,b;

void pushstack(int value)//向非空的那個隊列入隊

else if (!b.empty()==true&&a.empty()==true)

else //a b均為空 }

int popstack()//由非空的佇列向空隊列入隊,知道剩下最後乙個元素

m = a.front();

a.pop();

return m;

} else if (!b.empty()==true&&a.empty()==true)

m = b.front();

b.pop();

return m;

} return 0;

}int main()

cout<2:兩個棧實現佇列

a:入棧隊

b:出棧隊

由於棧為先進後出,兩個棧正好滿足先進先出

入隊:入棧a,a:1,2,3,4

出隊:將棧a的元素入棧b,直到為空,b:4,3,2,1;出棧1

#include#includeusing namespace std;

stacka,b;

void pushqueue(int value)

int popqueue()

if (!b.empty())

else m = 0;

while(!b.empty())

return m;

}int main()

for (int i = 1; i < 4; i++)

{ int m1 = popqueue();

cout<

兩個棧實現佇列和兩個佇列實現棧

兩個佇列新增元素,哪個隊列為空,由於在輸出元素時,要進行相應元素的移動 除去尾部元素 所以要在對應不為空的佇列進行元素的新增 在輸出資料時,要進行兩個佇列的變相操作,不為空的佇列要依次向為空的佇列中新增元素,直到尾元素輸出即可!兩個佇列實現乙個棧 public class twoqueueimpls...

兩個佇列實現棧和兩個棧實現佇列

棧 先進後出 佇列 先進先出 1 兩個佇列實現棧 佇列a佇列b 入棧 入佇列a,1,2,3,4 入棧,在佇列a裡為 a 1,2,3,4 出棧,將佇列a中的元素入佇列b直到佇列a裡的元素只剩下乙個,則隊a為4,隊b為1,2,3,a 4,b 1,2,3,輸出a隊頭4 include include us...

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

1.兩個棧實現佇列 大致思路 入佇列時,將元素入棧s1,出佇列時,將s2中的元素出棧即可,如果s2為空,那麼將s1中 s1.size 1 個元素出棧,加入到s2中,然後將s1中最後乙個元素出棧,即完成了出佇列的操作 include using namespace std include includ...