两个栈模拟一个队列 两个队列模似一个栈
来源:互联网 发布:长沙大数据招聘 编辑:程序博客网 时间:2024/05/17 08:31
请利用两个栈S1和S2来模拟一个队列,
利用两个队列D1和D2来模拟一个栈。
已知栈的三个运算定义如下:
PUSH(ST,x):元素x入ST栈;
POP(ST,x):ST栈顶元素出栈,赋给变量x;
count(ST):ST栈的元素个数。
那么如何利用栈的运算来实现该队列的三个运算:
enqueue:插入一个元素入队列;
dequeue:删除一个元素出队列;
queue_count:队列的元素个数。(请写明算法的思想及必要的注释)
1)使用两个栈S1和S2来模拟一个队列。
算法思路:
分别使用S1实现入队列,使用S2实现出队列。
入队列:
入栈S1.
出队列:
如果S2为空则将S1中元素全部出栈到S2,再由S2出栈栈顶元素,否则直接从S2出栈栈顶元素.
元素个数:
就是S1和S2的元素个数和.
参考 <http://blog.sina.com.cn/s/blog_895a150201010wgs.html>
http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html
2)使用两个队列Q1和Q2来模拟一个栈。
算法思路:
Q1和Q2一直保持至少有一个为空,作为出栈时候的缓冲区。
入栈:
如果Q2不为空则向Q2入队列;否则向Q1入队列.
出栈:
如果Q1,Q2都为空,不作操作;如果Q2为空,则把Q1中除了队尾的元素外全部入队列Q2,最后一个元素出队列;否则把Q2中除队尾的元素外全部入队列Q1,最后一个元素出队列
元素个数:
就是Q1和Q2的元素个数和
参考http://blog.csdn.net/djb100316878/article/details/41820953
- 两个栈模拟一个队列 两个队列模似一个栈
- 两个栈模拟一个队列/两个队列模拟一个栈
- 两个栈模拟一个队列
- 两个队列模拟一个栈
- 两个队列模拟一个栈
- 两个队列模拟一个栈
- 两个栈模拟一个队列
- 两个队列模拟一个栈
- 两个栈模拟一个队列
- 两个队列模拟一个栈
- 两个栈模拟一个队列
- 两个栈模拟一个队列
- 用两个栈模拟一个队列
- 【100题】两个栈模拟一个队列
- 用两个栈模拟一个队列
- 3.5-两个栈模拟一个队列
- 用两个队列模拟一个栈
- 用两个栈模拟一个队列
- 晋升的为什么不是你
- 解决cmd客户端插入包含中文数据乱码
- CentOS6.4系统安装图解
- PyGobject(十六)布局容器之Button篇——Gtk.VolumeButton
- 启樊数据管理软件 V2.02 简体中文官方安装版
- 两个栈模拟一个队列 两个队列模似一个栈
- 进阶项目3.1-点结构体
- 问题二 如何导出Excel工作薄
- java 方法声明中加上final 关键字
- HDU 2141 Can you find it?(二分)
- 数组专题
- mysql处理海量数据时的一些优化查询速度方法
- Intent案例--判断电话号码是否符合规范
- display 用法