[剑指Offer] 5.用两个栈实现队列
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
【思路】push:直接压入栈A即可
pop:当栈B为空,则把栈A依次出栈并压入栈B,最后对栈B出栈;否则直接对栈B出栈即可。
1 class Solution 2 { 3 public: 4 void push(int node) { 5 stack1.push(node); 6 } 7 8 int pop() { 9 int temp = 0; 10 if(stack2.empty()){ 11 while(!stack1.empty()){ 12 temp = stack1.top(); 13 stack1.pop(); 14 stack2.push(temp); 15 } 16 } 17 temp = stack2.top(); 18 stack2.pop(); 19 return temp; 20 } 21 22 private: 23 stack<int> stack1; 24 stack<int> stack2; 25 };