本題借鑑了部落格
先說明c++中棧和佇列的一些基本操作。
棧的基本操作:
佇列的基本操作:s.push(item); //將item壓入棧頂
s.pop(); //刪除棧頂的元素,但不會返回
s.top(); //返回棧頂的元素,但不會刪除
s.size(); //返回棧中元素的個數
s.empty(); //檢查棧是否為空,如果為空返回true,否則返回false
解題方法:q.push(item); //將item壓入隊尾
q.pop(); //刪除隊首的元素,但不會返回
q.front(); //返回隊首的元素,但不會刪除
q.back(); //返回隊尾的元素,但不會刪除
q.size(); //返回佇列元素的個數
q.empty(); //檢查佇列是否為空,如果為空返回true,否則返回false
class solution
int pop()
}int res;
if(stack2.size() > 0)
return res;
}private:
stackstack1;
stackstack2;
};
劍指offer 用兩個棧實現佇列
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解析 我的思路是用乙個棧來儲存資料,入隊的話直接在這個棧上入棧,出隊的話借助輔助棧,對輔助棧入棧,然後取出頭元素,然後把輔助棧上的元素在...
用兩個棧實現佇列《劍指offer
題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 將元素入隊時壓入乙個棧中,隨後通過另乙個棧出隊 1 使用stack容器定義兩個棧 stack stack1 stack stack2 2 入隊 stack1.push node node為入隊元素 ...
劍指offer 用兩個棧實現佇列
記錄 劍指offer 上的演算法題。題目描述如下 佇列的宣告如下 template class cqueue cqueue t deletehead bool empty private stack stack1 stack stack2 實現的 如下 templatet stack1.push n...