标签:while 实现 void 不为 用两个 private 允许 操作 turn
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:
public:
    void push(int node) {
           stack1.push(node); //stack1存入该数
    }
 
    int pop() {
           int res;
           if (stack2.size() > 0) {  //stack2不为空
                 res = stack2.top();  //取值stack2的第一个元素
                  stack2.pop();  //删除stack2的第一个元素
           }
          else if (stack1.size() > 0) {  //stack1不为空
                while (stack1.size() > 0) { 
                      int ele = stack1.top(); //取值stack1的第一个元素
stack1.pop(); //删除stack1的第一个元素
                      stack2.push(ele); //将stack1的第一个元素赋值给stack2  这里是将stack1的元素存入stack2 ,stack1,2都为为先进后出,将顺序调整为了先进先出
                }
                res = stack2.top(); //取值stack2的第一个元素
                stack2.pop(); //删除stack2的第一个元素
          }
          return res;
    }
 
private:
    stack<int> stack1;
    stack<int> stack2;
};
思路和题解都是借鉴别人的 要好好理解理解
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
标签:while 实现 void 不为 用两个 private 允许 操作 turn
原文地址:https://www.cnblogs.com/yl1995/p/12919724.html