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

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

 示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);  queue.peek();  // 返回 1queue.pop();   // 返回 1queue.empty(); // 返回 false说明:你只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 个人题解:

  • 利用两个栈来实现队列

  • 个人代码:(待优化版)

public class MyQueue {Stack<int> stack1;Stack<int> stack2;/** Initialize your data structure here. */public MyQueue() {stack1 = new Stack<int>();stack2 = new Stack<int>();}/** Push element x to the back of queue. */public void Push(int x) {stack1.Push(x);}/** Removes the element from in front of queue and returns that element. */public int Pop() {if(stack2.Count==0)
{while(stack1.Count!=0){stack2.Push(stack1.Pop());           }}     return stack2.Pop();}/** Get the front element. */public int Peek() {if(stack2.Count==0){while(stack1.Count!=0){stack2.Push(stack1.Pop());           }}     return stack2.Peek();}/** Returns whether the queue is empty. */public bool Empty() {return (stack1.Count==0&&stack2.Count==0);}
}/*** Your MyQueue object will be instantiated and called as such:* MyQueue obj = new MyQueue();* obj.Push(x);* int param_2 = obj.Pop();* int param_3 = obj.Peek();* bool param_4 = obj.Empty();*/

【栈】【232. 用栈实现队列】【简单】相关推荐

  1. 代码随想录第十天 | 225. 用队列实现栈 232.用栈实现队列(Java))

    232.用栈实现队列 class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue( ...

  2. java用队列实现栈、用栈实现对队列

    目录 用队列实现栈 用栈实现对队列 LeetCode题 225. 用队列实现栈 232. 用栈实现队列 用队列实现栈 思路: 1.创建两个队列, 2.哪个队列不为空就将要push的元素放到该队列中,若 ...

  3. 用栈实现队列(Leetcode第232题)+用队列实现栈(Leetcode第225题)

    目录 1.题目描述 2.思路 3.代码展示 4.用队列实现栈 4.1题目描述 4.2思路 4.3代码实现 1.题目描述 2.思路 思路是很清晰的,栈是先进后出,而队列是先进先出,所以要用栈实现队列,就 ...

  4. 单调栈与单调队列简单例题

    单调栈与单调队列简单例题 单调栈: POJ3250 题意:有n只奶牛排成一列向右看,每头奶牛只能看到比自己矮的奶牛,即会被高的奶牛挡住后面,问共有多少只奶牛能被看到 思路:考虑每头奶牛能被前面牛看到的 ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 转:几款主流 NoSql 数据库的对比
  2. Spring Security 和 Shiro 该如何选择?
  3. 面试:如何实现 MySQL 删除重复记录并且只保留一条
  4. AB测试:基础概念、应用场景及入门指南
  5. PHP获取当前页面的网址
  6. 混合式安全灵活性可充分满足无边界企业的发展
  7. java如何给顺序表赋值_JAVA模拟新增顺序表及单链表
  8. Win10系统特别卡的一个原因
  9. 现代语音信号处理之时域分析
  10. java就业培训教程 笔记
  11. 数字图像处理:图像与编码
  12. OpenCV3历程(4)——寻找直线的十字交叉点
  13. 生信技能树 WES分析教程学习(1)conda安装软件,配置环境
  14. Android 实现adb手机投屏
  15. Tumblr营销大法(一)
  16. moses中的数据预处理预处理操作
  17. ____ To All Girls  Boys
  18. 干货 | 深度学习之卷积神经网络(CNN)的模型结构
  19. js语言扩展之trim
  20. uniapp页面通讯-uni.$emit、uni.$on、uni.$once、uni.$off

热门文章

  1. 博士申请 | 上海交通大学叶南阳助理教授招收机器学习方向博士生
  2. 4个Keynote、12篇论文分享、40个Poster,CVPR 2021论文分享会全日程公布
  3. 旷视 AI 飞跃 | 研究生联合培养计划
  4. CVPR 2019 开源论文 | 基于翻译向量的图像翻译
  5. COLING 2018 最佳论文解读:序列标注经典模型复现
  6. 论文解读 | 基于神经网络的知识推理
  7. CVPR2017有哪些值得读的Image Caption论文?
  8. PaperWeekly 第52期 | 更别致的词向量模型:Simpler GloVe - Part 1
  9. hdu 1429 胜利大逃亡(续) bfs+状态压缩
  10. Docker笔记整理