劍指offer JZ-5
阿新 • • 發佈:2021-01-03
題目描述
用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。思路
比較簡單,stack1用來存放每次push進來的資料
棧是先進後出的資料結構,而佇列是先進先出的資料結構
在用棧模擬佇列的pop時,將stack1彈出的元素暫時存放在stack2中
在stack1彈出最早壓入棧中的元素後,再將stack2的中的元素一一彈出,並壓入stack1中即可
class Solution { public: void push(int node) { stack1.push(node); } int pop() {View Codeint Size = stack1.size(); while(Size > 1) { int val = stack1.top(); stack1.pop(); stack2.push(val); Size--; } int val = stack1.top(); stack1.pop(); while(!stack2.empty()) { stack1.push(stack2.top()); stack2.pop(); }return val; } private: stack<int> stack1; stack<int> stack2; };