要用两个队列实现栈,就需要了解栈和队列的特性,栈是先进后出,队列是先进先出。基本思路:把数据入队列1,数据一次出队列到队列2,剩最后一个数据出队列1后不再参与计算,循环这方法直到数据都出队列1后不再参与计算,即实现栈
两个队列实现一个栈
- package Package;
-
- import java.util.LinkedList;
- import java.util.Queue;
- //两人队列实现栈
- public class Stack3 {
- //定义两个队列
- Queue
queue1 = new LinkedList<>(); - Queue
queue2 = new LinkedList<>(); -
- //数据放入
- public void push(Integer value){
- queue1.offer(value);
- }
- //数据取出
- public Integer pop(){
- Integer num=null;
- while (!queue1.isEmpty()){
- num=queue1.poll();
- if (queue1.isEmpty()){
- break;
- }
- queue2.offer(num);
- }
- while (!queue2.isEmpty()){
- queue1.offer(queue2.poll());
- }
- return num;
- }
-
- }