【栈】【232. 用栈实现队列】【简单】
使用栈实现队列的下列操作:
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. 用栈实现队列】【简单】相关推荐
- 代码随想录第十天 | 225. 用队列实现栈 232.用栈实现队列(Java))
232.用栈实现队列 class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue( ...
- java用队列实现栈、用栈实现对队列
目录 用队列实现栈 用栈实现对队列 LeetCode题 225. 用队列实现栈 232. 用栈实现队列 用队列实现栈 思路: 1.创建两个队列, 2.哪个队列不为空就将要push的元素放到该队列中,若 ...
- 用栈实现队列(Leetcode第232题)+用队列实现栈(Leetcode第225题)
目录 1.题目描述 2.思路 3.代码展示 4.用队列实现栈 4.1题目描述 4.2思路 4.3代码实现 1.题目描述 2.思路 思路是很清晰的,栈是先进后出,而队列是先进先出,所以要用栈实现队列,就 ...
- 单调栈与单调队列简单例题
单调栈与单调队列简单例题 单调栈: POJ3250 题意:有n只奶牛排成一列向右看,每头奶牛只能看到比自己矮的奶牛,即会被高的奶牛挡住后面,问共有多少只奶牛能被看到 思路:考虑每头奶牛能被前面牛看到的 ...
- 【Leetcode】232.用栈实现队列
题目链接:232.用栈实现队列 关键字:栈.队列 解题思路 使用两个栈实现队列,其中一个栈正常使用,另一个栈用来保存逆序数据 代码实现 class MyQueue { public:/** Initi ...
- Suzy找到实习了吗Day 10 | 栈和队列开始啦:232. 用栈实现队列,225. 用队列实现栈
day10 python栈的实现 Python栈所需要的包 232. 用栈实现队列 思路 solution ?? 225. 用队列实现栈 思路 solution python栈的实现 Python中现 ...
- 【代码随想录刷题记录】 232.用栈实现队列 、225. 用队列实现栈
232.用栈实现队列 题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x ...
- 代码随想录【day 10 栈与队列】| 232.用栈实现队列、 225. 用队列实现栈
代码随想录[day 10 栈与队列]| 232.用栈实现队列. 225. 用队列实现栈 理论基础 LeetCode 232.用栈实现队列 题目链接:232.用栈实现队列 卡哥文解 视频讲解 解题思路( ...
- Leetcode 232. 用栈实现队列 解题思路及C++实现
解题思路: 使用两个栈,一个栈a用来存储每一次操作得到的队列,另一个栈b作为辅助栈. 在每一次push操作的时候,先把a中排好的队列(先进先出),依次push进栈b,所以,栈b中元素的排序就是后进先出 ...
- leetcode 232. 用栈实现队列 思考分析
题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列的支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到 ...
最新文章
- 转:几款主流 NoSql 数据库的对比
- Spring Security 和 Shiro 该如何选择?
- 面试:如何实现 MySQL 删除重复记录并且只保留一条
- AB测试:基础概念、应用场景及入门指南
- PHP获取当前页面的网址
- 混合式安全灵活性可充分满足无边界企业的发展
- java如何给顺序表赋值_JAVA模拟新增顺序表及单链表
- Win10系统特别卡的一个原因
- 现代语音信号处理之时域分析
- java就业培训教程 笔记
- 数字图像处理:图像与编码
- OpenCV3历程(4)——寻找直线的十字交叉点
- 生信技能树 WES分析教程学习(1)conda安装软件,配置环境
- Android 实现adb手机投屏
- Tumblr营销大法(一)
- moses中的数据预处理预处理操作
- ____ To All Girls Boys
- 干货 | 深度学习之卷积神经网络(CNN)的模型结构
- js语言扩展之trim
- uniapp页面通讯-uni.$emit、uni.$on、uni.$once、uni.$off
热门文章
- 博士申请 | 上海交通大学叶南阳助理教授招收机器学习方向博士生
- 4个Keynote、12篇论文分享、40个Poster,CVPR 2021论文分享会全日程公布
- 旷视 AI 飞跃 | 研究生联合培养计划
- CVPR 2019 开源论文 | 基于翻译向量的图像翻译
- COLING 2018 最佳论文解读:序列标注经典模型复现
- 论文解读 | 基于神经网络的知识推理
- CVPR2017有哪些值得读的Image Caption论文?
- PaperWeekly 第52期 | 更别致的词向量模型:Simpler GloVe - Part 1
- hdu 1429 胜利大逃亡(续) bfs+状态压缩
- Docker笔记整理