0
点赞
收藏
分享

微信扫一扫

JZ9. 用两个栈实现队列(C++|模拟)

ZSACH 2022-03-12 阅读 55

用两个栈实现队列_牛客题霸_牛客网

果果念

很简单的一道题目,栈的性质是FILO,First in last out,即先进后出;而队列的性质是FIFO,先进先出,借用两个栈可以实现模拟一个队列的操作;同理,借用两个队列也可以模拟栈的操作。只要记住,一个用来进,一个用来出就好。

代码

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

    int pop() {
        int num;//模拟队列的队首元素
        if (stack2.empty()) {
            //stack2为空,将stack1中的元素按照顺序插入stack2中
            while (stack1.empty() != true) {
                stack2.push(stack1.top());
                stack1.pop();
            }
        }
        num = stack2.top();
        stack2.pop();
        return num;
    }

  private:
    stack<int> stack1;//作为第一个栈,插入时进入这里1 2
    stack<int> stack2;
};

 

举报

相关推荐

0 条评论