[剑指Offer] 5.用两个栈实现队列

来源:互联网 发布:js命名规范 编辑:程序博客网 时间:2024/05/19 22:07
 题目描述

用两个栈来实现一个队列,完成队列的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 };

 

原创粉丝点击