使用两个栈实现一个队列
来源:互联网 发布:软件版权说明 编辑:程序博客网 时间:2024/06/10 03:17
首先理一下思路
s1:用于入栈。
s2:用于出栈。
(1)入队列:直接将元素压入s1;
(2)出队列:如果s2不为空,把s2中的栈顶元素直接弹出;否则,把s1的所有元素全部倒到s2中,再弹出s2的栈顶元素。
class MyQueue<T>{ //定义两个堆栈 private Stack<T> stack1; private Stack<T> stack2; public MyQueue() { stack1=new Stack<T>(); stack2=new Stack<T>(); } public void appentTail(T ele) { //尾部插入 stack1.push(ele); } public T deleteHead() throws Exception { //头部删除 if(stack2.isEmpty()) { //如果stack2为空 while(!stack1.isEmpty()) { //stack1的元素全部倒入stack2 stack2.push(stack1.pop()); } } if(stack2.isEmpty()) throw new Exception("队列为空"); return stack2.pop(); }}
阅读全文
0 0
- 栈&队列--使用两个栈实现一个队列+使用两个队列实现一个栈
- 使用两个队列实现一个栈
- 使用两个队列实现一个栈
- 使用两个栈实现一个队列
- 使用两个栈实现一个队列
- 使用两个队列实现一个栈
- 数据结构-使用两个栈实现一个队列
- 使用两个队列实现一个栈
- 使用两个栈实现一个队列
- 使用两个队列实现一个栈
- 使用两个栈实现一个队列
- 使用两个栈实现一个队列
- 使用两个栈实现一个队列
- ~使用两个栈实现一个队列~
- ~使用两个队列实现一个栈~
- 使用两个栈实现一个队列
- 使用两个队列实现一个栈
- 使用两个栈实现一个队列
- 移动架构06_设计模式二:抽象工厂模式
- Redis常考面试题
- 一文搞懂各种 Docker 网络
- HDU——1020 Encoding
- Ubuntu硬盘只读文件系统
- 使用两个栈实现一个队列
- 短信验证码功能开发
- bzoj 5045: 打砖块
- 大数据(二十一)Hive【Hive【DDL语句】】
- LuaFramework案例_01
- android调试篇之eclipse 一:wait for debug
- Improving Deep Neural Networks Tensorflow 参考答案
- LeekCode:03:Longest Substring Without Repeating Characters
- 数据库视频总结(一)