要用两个栈实现队列,就需要了解栈和队列的特性,栈是先进后出,队列是先进先出。基本思路是,把数据先压入栈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;}}