20.用两个栈实现队列

 这题要注意:栈的方法,pop(),push()可以用

class Solution
{ 
public:
    void push(int node) {
        stack1.push(node);
    }

    int pop() {
         int a;
        if(stack2.empty()){
            while(!stack1.empty())
            {
                //将stack1中的元素装入stack2中
                stack2.push(stack1.top());//stack1.top():返回stack1栈顶元素
                stack1.pop();//移除stack1栈顶元素
            }
        }
        a=stack2.top();
        stack2.pop();
        //还将栈内元素装入stack1
          if(stack1.empty()){
            while(!stack2.empty())
            {
                stack1.push(stack2.top());
                stack2.pop();
            }
        }
        
     return a;
    } 
    

private:
    stack<int> stack1;
    stack<int> stack2;
};

猜你喜欢

转载自www.cnblogs.com/make-big-money/p/12364093.html