劍指Offer總結 用兩個棧實現佇列

2022-02-02 22:38:16 字數 582 閱讀 1604

class solution

int pop()

}int val = stack1.top();

stack1.pop();

return val;

}private:

stackstack1;

stackstack2;

};

這題思路很簡單,就是乙個棧用來調換元素順序,另乙個當臨時的快取。當調換順序的棧清空之後,才將快取中的內容一次性壓入調換順序用的棧中。一定要一次性,否則順序會亂。

棧是filo(先入後出),佇列是fifo(先入先出),大概示意圖是這樣:

棧:凡是最先進去的都會被壓到底部,而最後進去的,因為在最上面,所以也最先出來。

佇列就是和排隊一樣了,最先排進佇列的最先出來。

劍指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...