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

用两个栈实现队列

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;
};
全部评论

相关推荐

点赞 评论 收藏
分享
11-23 22:07
同济大学 Java
贺兰星辰:你这简历完全可以缩到一页,校园工作、自我评价完全可以删了,没人看的;个人技能可以写多点。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务