两个栈实现队列与两个队列实现栈(java)
来源:互联网 发布:winrar软件下载免费版 编辑:程序博客网 时间:2024/06/03 08:48
两个栈实现队列的pop和push
import java.util.*;/** * 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 * 思路:入队列,直接用堆栈入就行 * 出队列,当栈2位空的时候,把栈1所有的数据全部pop到栈2;栈2不为空的时候,直接将剩余的pop出去。 * */public class stackqueue {static Stack<Integer> stack1 = new Stack<Integer>();static Stack<Integer> stack2 = new Stack<Integer>();public void push(int node) { stack1.push(node); } public int pop() { if(stack2.empty()){ while(!stack1.empty()){ stack2.push(stack1.pop()); } } return stack2.pop(); }public static void main(String[] args) { stackqueue sq=new stackqueue(); sq.push(1); sq.push(2); sq.push(3); sq.pop(); sq.push(4); sq.pop(); sq.pop(); } }
两个栈实现队列的pop和push
import java.util.*;/** * 用两个队列来实现一个栈,完成队列的Push和Pop操作。 队列中的元素为int类型。 * 思路:入队列,当前哪个队列有内容就存入哪个队列 * 出队列,把当前有内容的队列1弹出队尾数据,应该把之前的数据全部push到队列2。 * */public class queueStack {Queue<Integer> queue1=new ArrayDeque<Integer>();Queue<Integer> queue2= new ArrayDeque<Integer>();public void push(int node){//最开始插入的时候,优先插到queue1中if(queue1.isEmpty()&&queue2.isEmpty()){queue1.offer(node);}//哪个有内容插入哪个队列if(!queue1.isEmpty()&&queue2.isEmpty()){queue1.offer(node);}else if(queue1.isEmpty()&&!queue2.isEmpty()){queue2.offer(node);}}public int pop(){if(queue1.isEmpty()&&queue2.isEmpty()){try{throw new Error("栈是空的!");}catch(Exception e){}}if(queue2.isEmpty()){while(queue1.size()>1){queue2.offer(queue1.poll());}return queue1.poll();}if(queue1.isEmpty()){while(queue2.size()>1){queue1.offer(queue2.poll());}return queue2.poll();}return (Integer) null;}public static void main(String[] args){queueStack qs = new queueStack();qs.push(1);qs.push(2);System.out.println(qs.pop());qs.push(3);qs.push(4);System.out.println(qs.pop());System.out.println(qs.pop());qs.push(5);System.out.println(qs.pop());System.out.println(qs.pop());}}
0 0
- java 两个栈实现队列与两个列实现栈
- 两个栈实现队列与两个队列实现栈(java)
- java两个栈实现队列
- 两个栈实现队列与两个队列实现栈
- 两个栈实现队列与两个队列实现栈
- 两个栈实现队列与两个队列实现栈
- 两个栈实现队列+两个队列实现栈----java
- Java 两个栈实现队列和两个队列实现栈
- 两个栈实现队列(Java)
- 两个栈实现一个队列(java)
- 两个栈实现队列
- 两个队列实现栈
- 两个栈实现队列
- 两个栈实现队列
- 两个栈实现队列
- 两个队列实现栈
- 两个栈实现队列
- 两个 栈 实现队列
- 关于Logstash Unknown setting 'host' for elasticsearch
- 51nod 1240 莫比乌斯函数
- 先借力,后能力,先借船,后造船,抱团打天下!
- cocos2d-x 建立Layer的模板
- 树的高度与深度
- 两个栈实现队列与两个队列实现栈(java)
- 函数(方法)
- SSM静态资源访问+异步
- AtCoder Grand Contest 012 题解
- POJ 3258River Hopscotch(二分)
- 最近几种C#使用总结
- Bootstrap前台框架包含CSS/IMG/JS目录
- android简单实现比分条
- hdu 4431 Mahjong (模拟)