57.用倆個棧實現佇列。
題目:某佇列的宣告如下:
83templateclass cqueue
~cqueue() {}
void deletehead(); // remove a element from head
private:
stackm_stack1;
stackm_stack2;
};分析:從上面的類的宣告中,我們發現在佇列中有兩個棧。
因此這道題實質上是要求我們用兩個棧來實現乙個佇列。
因此對佇列進行的插入和刪除操作都是在棧頂上進行;佇列是一種先入先出的資料容器,
我們總是把新元素插入到佇列的尾部,而從佇列的頭部刪除元素。
/*57.用倆個棧實現佇列。
題目:某佇列的宣告如下:
templateclass cqueue
~cqueue() {}
void deletehead(); // remove a element from head
private:
stackm_stack1;
stackm_stack2;
};2個棧 s1,s2
入隊時,將元素壓入s1。
出隊時,判斷s2是否為空,
如不為空,則直接彈出頂元素;
如為空,則將s1的元素逐個「倒入」s2,把最後乙個元素彈出並出隊。
*/#include #include using namespace std;
templateclass queue
~queue(){}
void deletehead() // remove a element from head
cout<<"出隊:"q.deletehead();
q.deletehead();
cout<<"****************"<
用倆個棧實現佇列
棧 佇列 一 題目 感謝 提供的題目 用倆個棧實現佇列。某佇列的宣告如下 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...
C 倆棧實現佇列
自畫草圖 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不為空棧...