题解 | #用两个栈实现队列#

用两个栈实现队列

http://www.nowcoder.com/questionTerminal/54275ddae22f475981afa2244dd448c6

题目描述
用两个栈来实现队列
题目链接
首先介绍下栈和队列,栈是一种先进后出的数据结构,队列是先进先出的数据结构,
图片说明
想要用两个栈来模拟队列,当每次出队列时先模拟出反转的队列,然后取出栈头如图
图片说明
然后再把栈2反转回栈1

即完成了队列的操作
代码如下:

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

    int pop() {
        while(stack1.size())
        {
            int x=stack1.top();
            stack1.pop();
            stack2.push(x);
        }
        int x=stack2.top();
        stack2.pop();
        while(stack2.size())
        {
            int x=stack2.top();
            stack2.pop();
            stack1.push(x);
        }
        return x;
    }

private:
    stack<int> stack1;
    stack<int> stack2;
};
全部评论

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务