NO IMAGE

問題描述:

用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。

演算法分析:

push:
1.將資料壓入stack1;

pop:
1.將stack1中所有資料彈出到stack2;
2.將stack2中第一個數彈出設定為返回值;
3.將stack2中所有資料彈出到stack1;
4.將返回值返回

程式碼實現

class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
while (!stack1.empty()){
stack2.push(stack1.top());
stack1.pop();
}
int node = stack2.top();
stack2.pop();
while (!stack2.empty()){
stack1.push(stack2.top());
stack2.pop();
}
return node;
}
private:
stack<int> stack1;
stack<int> stack2;
};