使用两个队列实现一个栈
栈:先进后出
队列:先进先出
思路:利用一个队列做主队列,另一个队列作为辅助队列,把元素翻转过来即可。
public class Test {class QueueStack {private Queue<Integer> queueA = new LinkedList<Integer>();private Queue<Integer> queueB = new LinkedList<Integer>();public void push(Integer val) {if(queueA.size() ==0) {queueA.offer(val);}else {//之前的先出队列,保存到queueBwhile(!queueA.isEmpty()) {queueB.offer(queueA.poll());}//把当前元素放到A中queueA.offer(val);//把队列B中的元素重新放到A中while(!queueB.isEmpty()) {queueA.offer(queueB.poll());}}}public Integer pop() {return queueA.poll();}}public static void main(String[] args) {Test test = new Test();QueueStack queueStack = test.new QueueStack();queueStack.push(1);queueStack.push(2);queueStack.push(3);Integer val = null;while ((val = queueStack.pop()) != null) {System.out.println(val);}}}
使用两个队列实现一个栈相关推荐
- 两个栈实现一个队列,两个队列实现一个栈
题目:用两个栈实现一个队列,用两个队列实现一个栈. 首先要了解栈和队列这两种数据结构各自的特点,栈是一种后入先出(Last In First Out,LIFO)的数据结构,队列是一种先进先出(Firs ...
- java实现-两个栈实现一个队列和两个队列实现一个栈
1.两个栈实现一个队列 思路:压入元素直接入stack1,删除元素先判断stack2中是否为空,如果不为空直接弹出:为空则将stack1中的元素取出压入 stack2中再弹出. 代码: import ...
- python ——两个队列实现一个栈两个栈实现一个队列
1.两个队列实现一个栈 进栈:元素入队列A 出栈:判断如果队列A只有一个元素,则直接出队.否则,把队A中的元素出队并入队B,直到队A中只有一个元素,再直接出队.为了下一次继续操作,互换队A和队B. p ...
- 两个栈实现一个队列与两个队列实现一个栈
http://blog.csdn.net/z84616995z/article/details/19204529 两个栈实现一个队列: 原理方法:用一个栈为主栈,一个栈为辅助栈存放临时元素. 入队:将 ...
- 两个栈实现一个队列/两个队列实现一个栈
http://blog.csdn.net/sinat_30472685/article/details/70157227 1两个栈实现一个队列 1.原理分析: 队列的主要操作有两个:入队操作和出队操作 ...
- 数据结构:栈和列之如何用两个队列实现一个栈?两个栈实现一个队列?
1.栈和队列分析 栈是一种特殊的线性表.其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行 队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的 ...
- C/C++面试题—使用STL两个队列实现一个栈
题目介绍 使用STL中的两个队列实现一个栈,实现栈的top.pop.push.clear等操作. 思路分析 思路和使用2个栈实现一个队列是相通的,用一个队列queue1容器用来 压栈,出栈的时候判断q ...
- java 栈和队列实现迷宫代码_使用两个队列实现一个栈
两个队列实现一个栈 栈的特点是后进先出,队列的特点是先进先出.使用两个队列模拟栈,实现栈的push,pop,top,empty 操作. 假设队列中均为数字,其中队列q1为操作队列,q2为辅助队列. p ...
- 【c语言】两个队列实现一个栈
两个队列实现一个栈 核心思想:模拟出栈的后进先出操作 创建queue1和queue2,入栈时选择一个非空队列执行入队列操作(若两个队列都为空,则随机选择一个队列),出栈时需要先从非空队列queue1把 ...
- 【C++】两个队列实现一个栈
两个队列实现一个栈的思想:用_PushQ1队列作为push数据的队列,用_TmpQ2队列暂存数据 1.只要是对栈进行push操作,就将数据push入_PushQ1队列中. 2.要实现栈的pop操作,就 ...
最新文章
- ps怎么制作流体_PS实例教程:制作流体质感背景
- 关于修改session的生存时间以及回收机制
- spring注解@service(service)括号中的service有什么用?
- java扫雷教程_java实现简单扫雷游戏
- 清华北大毕业生都进体制内了?
- 解决微信小程序新建项目没有样式问题,以及官方demo
- filter IE滤镜(Internet Explorer)CSS
- [Linux]Ubuntu下用apt-get安装的应用程序位置
- 深入理解JVM-类加载器深入解析(3)
- 数源思维完成目标设定
- 流媒体传输协议浅析(三)可靠UDP传输方案
- 图形图像处理案例4——彩色勾线画生成器,彩色绕线画生成器,绕线画生成器
- 学会用Word制作拼音田字格练习本,简单实用更省钱,宝妈必学
- 微分方程求通解推导-----专升本
- Github: fatal: Unsupported SSL backend ‘“openssl”‘. Supported SSL backends: openssl schannel
- [乐意黎]2016年中级会计师考试《经济法》真题及答案-第一批(9.10-9.11)
- gridview分页的问题
- 深富策略:A股市场处于震荡颠簸期
- Flash引导层动画的制作
- Spring AOP之---基于JDK动态代理和CGLib动态代理的AOP实现