用两个队列实现一个栈&&用两个栈实现一个队列
来源:互联网 发布:mac dare you diva 编辑:程序博客网 时间:2024/06/18 06:49
用两个队列实现一个栈:(重点是入的过程)
转载自http://blog.csdn.net/jiange_zh
队列是先进先出,而栈是先进后出;
考虑到我们取栈顶元素的便利性,我们在实现时使得栈顶等于队列头;
由于栈的pop弹出栈顶元素,而队列的pop也是弹出栈顶元素,所以我们需要特别处理的是插入操作。
由于往栈中添加元素相当于往队列头添加元素,因此我们需要在两个队列中进行元素的转移,比较简单的实现是:
1.q1和q2在任一时刻至少有一个为空,即如果有元素,所以元素只在同一个队列中。
2.当有元素需要插入时,将插入的元素插入到空的队列中,并将另一非空队列的元素转移到该队列中,于是插入的元素添加到了队列头中。
转载自http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html
入队时,将元素压入s1。
出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒回”s1。
在出队时,将s1的元素逐个“倒入”s2时,原在s1栈底的元素,不用“倒入”s2(即只“倒”s1.Count()-1个),可直接弹出作为出队元素返回。这样可以减少一次压栈的操作。阅读全文
0 0
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现一个队列
- 用两个栈实现一个队列
- 用两个栈实现一个队列
- 用两个队列实现一个栈
- 用两个栈实现一个队列功能
- 用两个栈实现一个队列
- 用两个队列实现一个栈
- 用两个栈实现一个队列
- 用两个队列实现一个栈
- 用两个栈来实现一个队列
- 用两个栈实现一个队列功能
- 用两个队列实现一个栈
- 用两个队列实现一个栈
- 用两个栈实现一个队列
- 用两个栈实现一个队列
- 用两个栈实现一个队列
- NFS
- 生成Mybatis逆向工程【简单实例】
- 【Unity3D】动态文本的滚动条
- vue开发模式下的跨域问题
- Java连接MySQL数据库
- 用两个队列实现一个栈&&用两个栈实现一个队列
- HDU 2066一个人的旅行
- MySQL中server_id一致带来的问题
- 前端开发要注意的浏览器兼容性问题整理
- 关于RXJAVA的取消订阅的理解
- centos6.8安装开发环境2之hadoop伪分布式搭建
- 今天看了《海马记忆法》这本书
- QT Creator 使用seetaface
- 安装配置hadoop和eclipse插件遇到的坑和解决办法