两个队列实现一个栈

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

}

        

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