java面试题-如何用栈实现一个队列

2019-12-11  本文已影响0人  wervy

思路:栈是先进后出,队列就是先进先出,就是把第一个元素取出来。
方法:准备两个栈,一个数据栈,一个数据栈,数据栈中存入了数据,然后把数据栈的数据依次放入辅助栈中,最后一个元素就是之前第一个放入数据栈的数据。

public class Stack2Queue {

    public static void main(String[] args){

        Stack stack1 = new Stack();
        Stack stack2 = new Stack();
        stack1.add("11");
        stack1.add("22");
        stack1.add("33");

        while (stack1.size()>1){

            stack2.push(stack1.pop());
        }

        System.out.println(stack1.pop());
    }

}

同理也可以用队列来实现栈

public class Queue2Stack {

    public static void main(String[] args){


        Queue queue1 = new LinkedList();
        Queue queue2 = new LinkedList();

        queue1.add("111");
        queue1.add("222");
        queue1.add("333");

        queue2.add(queue1.poll());

        String str = "";
        while (queue1.size()>1){
            queue2.add(queue1.poll());
        }
        if (queue1.size() == 1){
            str = (String) queue1.poll();
            while (queue2.size() > 0){
                queue1.add(queue2.poll());
            }
        }
        System.out.println(str);
        System.out.println(queue1.toString());
    }
}

上一篇 下一篇

猜你喜欢

热点阅读