使用栈实现队列的下列操作:

  • push(x) – 将一个元素放入队列的尾部。
  • pop() – 从队列首部移除元素。
  • peek() – 返回队列首部的元素。
  • empty() – 返回队列是否为空

栈的特点:后入先出
队列的特点:先入先出

使用一个数据栈,一个辅助栈,我们最终的目的是想要将新添加的元素放入栈低,所以使用辅助栈先将之前的数据栈元素保存起来,将新元素放入空的数据栈,再将辅助栈中的元素重新添加到数据栈中即可。

实现如下:

class MyQueue {private:stack<int> S;
public:/** Initialize your data structure here. */MyQueue() {}/** Push element x to the back of queue. */void push(int x) {stack<int> tmp;while(!S.empty()){tmp.push(S.top());S.pop();}S.push(x);while(!tmp.empty()) {S.push(tmp.top());tmp.pop();}}/** Removes the element from in front of queue and returns that element. */int pop() {int tmp = S.top();S.pop();return tmp;}/** Get the front element. */int peek() {return S.top();}/** Returns whether the queue is empty. */bool empty() {return S.empty();}
};

leetcode-232 用栈实现队列相关推荐

  1. LeetCode 232. 用栈实现队列(双栈法-队列)

    1. 题目 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部. pop() – 从队列首部移除元素. peek() – 返回队列首部的元素. empty() – 返回队列是否为 ...

  2. leetcode 232. 用栈实现队列(Implement Queue using Stacks)

    目录 题目描述: 示例: 说明: 解法: 题目描述: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部. pop() -- 从队列首部移除元素. peek() -- 返回队列 ...

  3. 【Java】LeetCode 232. 用栈实现队列

    题目描述 : 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x) 将元素 x ...

  4. Leetcode 232. 用栈实现队列 解题思路及C++实现

    解题思路: 使用两个栈,一个栈a用来存储每一次操作得到的队列,另一个栈b作为辅助栈. 在每一次push操作的时候,先把a中排好的队列(先进先出),依次push进栈b,所以,栈b中元素的排序就是后进先出 ...

  5. leetcode 232. 用栈实现队列 思考分析

    题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列的支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到 ...

  6. 代码随想录【day 10 栈与队列】| 232.用栈实现队列、 225. 用队列实现栈

    代码随想录[day 10 栈与队列]| 232.用栈实现队列. 225. 用队列实现栈 理论基础 LeetCode 232.用栈实现队列 题目链接:232.用栈实现队列 卡哥文解 视频讲解 解题思路( ...

  7. 【Leetcode】232.用栈实现队列

    题目链接:232.用栈实现队列 关键字:栈.队列 解题思路 使用两个栈实现队列,其中一个栈正常使用,另一个栈用来保存逆序数据 代码实现 class MyQueue { public:/** Initi ...

  8. Leetcode刷题——栈与队列

    Leetcode刷题--栈与队列 一.栈与队列定义 二.Leetcode题目 1.用栈实现队列 2.用队列实现栈 一.栈与队列定义 栈:先进后出,栈提供push 和 pop 等等接口,所有元素必须符合 ...

  9. 【代码随想录刷题记录】 232.用栈实现队列 、225. 用队列实现栈

    232.用栈实现队列 题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x ...

  10. Suzy找到实习了吗Day 10 | 栈和队列开始啦:232. 用栈实现队列,225. 用队列实现栈

    day10 python栈的实现 Python栈所需要的包 232. 用栈实现队列 思路 solution ?? 225. 用队列实现栈 思路 solution python栈的实现 Python中现 ...

最新文章

  1. R语言ggplot2可视化facet间隔设置语法实战
  2. Could not autowire field: private javax.servlet.http.HttpServletRequest
  3. 【Java】单词倒序输出
  4. 在Spring中嵌入HSQLDB服务器实例
  5. C++ 里利用 std::ios::sync_with_stdio(false) 解决TLE问题
  6. H5炫酷特效系列4——炫酷粒子变化特效
  7. 华为Mate 30 Lite曝光:搭载麒麟810+20W快充
  8. 用电饭锅做蛋糕的做法
  9. Flex4学习笔记(二)--语法相关
  10. IT男几时而立(下)
  11. 成立一年,openEuler为开源带来哪些改变
  12. Eclipse 插件 在线安装 收集
  13. 蓝天模具风扇调速软件_联力UNI FAN SL120风扇体验:模组化拼装的风扇
  14. 倍福PLC_添加CX2500-0060以太网模块后无法从TwinCAT软件扫描到问题
  15. 中心极限与大数定理律的关系_【小结】实数域的基本定理
  16. WhatsApp网页版扫码分析
  17. 网上商城系统支付方式如何配置?支付方式有哪些
  18. 微信公众平台开发教程Java版(一)环境准备篇
  19. 计算机考研 东华大学,2017考研:计算机科学与技术专业考研院校推荐之东华大学...
  20. 【Python绘图】pyecharts绘制南丁格尔玫瑰图

热门文章

  1. SQL Server 日期和时间相关的数据类型有两种
  2. sybase Invalid command line argument 'and'.
  3. 一般筛法求素数+快速线性筛法求素数
  4. Bqq服务器的缓存文件放什么目录,如何使文件系统缓存失效? - How to invalidate the file system cache? - 开发者知识库...
  5. visual MySQL 教程_MySql轻松入门系列——第二站 使用visual studio 对mysql进行源码级调试...
  6. 多元统计分析何晓群_多元统计分析第四章作业
  7. getinstance方法详解_二、设计模式总览及工厂模式详解
  8. aes js 加盐值 解密_crypto-js aes加密解密
  9. 软件项目技术方案_榆林化学公司项目工艺包关键技术创新方案审查顺利完成
  10. mysql 事务隔离规范_MySQL事务隔离级别以及脏读、幻读、不可重复读示例