09. 用两个栈实现队列
生活随笔
收集整理的這篇文章主要介紹了
09. 用两个栈实现队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2020-06-22
1.題目描述
用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成 在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 )2.題解
一個棧用來輸入,一個棧用來輸出 入棧:直接入棧1即可 出棧:如果棧2為空,則將棧1所有元素放入棧2,并輸出棧2棧頂元素,如果棧2不為空,直接出棧2即可3.代碼
class CQueue { public:CQueue() {}void appendTail(int value) {s1.push(value);}int deleteHead() {if (s1.empty()&&s2.empty()) return -1;if (s2.empty()){while (!s1.empty()){s2.push(s1.top());s1.pop();}}int t=s2.top();s2.pop();return t;}stack<int> s1,s2; };/*** Your CQueue object will be instantiated and called as such:* CQueue* obj = new CQueue();* obj->appendTail(value);* int param_2 = obj->deleteHead();*/總結
以上是生活随笔為你收集整理的09. 用两个栈实现队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSH:分页实现
- 下一篇: lucene 索引优化