两个栈实现队列

        要用两个栈实现队列,就需要了解栈和队列的特性,栈是先进后出,队列是先进先出。基本思路是,把数据先压入栈1中,然后数据在栈1中输出再压入栈2,输出后就能实现队列的先进先出。

两个栈实现队列_第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;
    }

}

你可能感兴趣的:(java,开发语言)