package佇列;
/*** 兩個佇列實現乙個棧
* * 思路:佇列1和佇列2在任意時刻至少有乙個為空,即如果有元素,所有元素只能在乙個佇列中。當有元素需要插入時,將元素插入到
* 空佇列
中,並將另一非空佇列的所有元素全部轉移到該佇列中,於是,插入的元素新增到了對列的最前面
* *@authoradministrator**/
publicclassstack
/** * 新增元素
*/publicvoidpush(int
data
)
}else
}
}/** * 從棧取元素
*@return
*/publicinteger pop()
if(!queue1
.isempty())else
}/** * 取峰值
*@return
*/publicinteger peek()
if(!queue1
.isempty())else
}/** * 主函式
*@paramargs
*/publicstaticvoidmain(string
args
)
}}
兩個棧模擬乙個佇列 兩個佇列模擬乙個棧
解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...
兩個棧實現乙個佇列 兩個佇列實現乙個棧
這兩個題的思路比較相似。棧的特點是 先進後出 佇列的特點是 先進先出 不要怕!用兩個棧實現乙個佇列很簡單 再將top元素push到stack 2中,然後將stack 1 pop一次直到stack 1剩下最後乙個元素,這個就是最先push進去的,我們把它pop掉就可以了,同理,我們求queue的fro...
兩個棧實現乙個佇列,兩個佇列實現乙個棧
1 兩個棧實現乙個佇列 入隊時,直接壓入stack1中。出隊時,判斷stack2是否為空,如果stack2為空,則將stack1中的元素倒入stack2中,否則直接彈出stack2中的元素。入隊操作 void enqueue stack s1,stack s2,int m 出隊操作 void deq...