前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指Offer总结——用两个栈实现队列

剑指Offer总结——用两个栈实现队列

作者头像
太阳影的社区
发布2021-10-15 16:37:47
1850
发布2021-10-15 16:37:47
举报
文章被收录于专栏:太阳影的学习记录
代码语言:javascript
复制
class Solution
{
public:
    void push(int node) {
        stack2.push(node);
    }

    int pop() {
        if(stack1.empty()){
            while(!stack2.empty()) {
                stack1.push(stack2.top());
                stack2.pop();
            }
        }
        int val = stack1.top();
        stack1.pop();
        return val;
    }

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

这题思路很简单,就是一个栈用来调换元素顺序,另一个当临时的缓存。当调换顺序的栈清空之后,才将缓存中的内容一次性压入调换顺序用的栈中。一定要一次性,否则顺序会乱。

补充

栈是FILO(先入后出),队列是FIFO(先入先出),大概示意图是这样:

栈:凡是最先进去的都会被压到底部,而最后进去的,因为在最上面,所以也最先出来。

队列就是和排队一样了,最先排进队列的最先出来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 补充
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档