棧:先進後出
佇列:先進先出
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<
兩個佇列實現棧和兩個棧實現佇列
棧 先進後出 佇列 先進先出 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 u...
兩個棧實現佇列和兩個佇列實現棧
兩個佇列新增元素,哪個隊列為空,由於在輸出元素時,要進行相應元素的移動 除去尾部元素 所以要在對應不為空的佇列進行元素的新增 在輸出資料時,要進行兩個佇列的變相操作,不為空的佇列要依次向為空的佇列中新增元素,直到尾元素輸出即可!兩個佇列實現乙個棧 public class twoqueueimpls...
兩個棧實現佇列 兩個佇列實現棧
1.兩個棧實現佇列 大致思路 入佇列時,將元素入棧s1,出佇列時,將s2中的元素出棧即可,如果s2為空,那麼將s1中 s1.size 1 個元素出棧,加入到s2中,然後將s1中最後乙個元素出棧,即完成了出佇列的操作 include using namespace std include includ...