1. 思路

  1. 栈特性:先进后出

  2. 队列特性:先进先出

  3. 实现方法:先进第一个栈,然后倒序进入第二个栈,弹出时第二个栈的top出去即可

  4. 相关函数,栈是pop()和push(x),size()方法看容量,empty()是是否为空,栈顶元素top()
    图片说明
    1)方法一:stack2需要出栈1个就从stack1里top拿一个
    2)方法二:需要从stack2中出栈时就把stack1中全拿出来放进去

    2. 源代码

    class Solution
    {
    public:
     void push(int node) {
         stack1.push(node);
     }
    
     int pop() {
          int res;
         if(stack2.empty()){
             while(!stack1.empty()){
                 int temp = stack1.top();
                 stack1.pop();
                 stack2.push(temp);
             }
         }
    
         res = stack2.top();
         stack2.pop();
         return res;
    
     }
    private:
     stack<int> stack1;
     stack<int> stack2;
    };
    //栈的特征是先进后出