要用两个栈实现队列,就需要了解栈和队列的特性,栈是先进后出,队列是先进先出。基本思路是,把数据先压入栈1中,然后数据在栈1中输出再压入栈2,输出后就能实现队列的先进先出。
package Package;
import java.util.LinkedList;
import java.util.Queue;
//两人队列实现栈
public class Stack3 {
//定义两个队列
Queue<Integer> queue1 = new LinkedList<>();
Queue<Integer> 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;
}
}