美文网首页
009,两个栈实现队列

009,两个栈实现队列

作者: 丹之 | 来源:发表于2018-10-08 08:44 被阅读0次

    用两个栈实现队列

    解题思路
    in 栈用来处理入栈(push)操作,out 栈用来处理出栈(pop)操作。一个元素进入 in 栈之后,出栈的顺序被反转。当元素要出栈时,需要先进入 out 栈,此时元素出栈顺序再一次被反转,因此出栈顺序就和最开始入栈顺序是相同的,此时先进入的元素先退出,这就是队列的顺序。

    Stack<Integer> in = new Stack<Integer>();
    Stack<Integer> out = new Stack<Integer>();
    
    public void push(int node) {
        in.push(node);
    }
    
    public int pop() {
        if (out.isEmpty()) {
            while (!in.isEmpty()) {
                out.push(in.pop());
            }
        }
        return out.pop();
    }
    

    相关文章

      网友评论

          本文标题:009,两个栈实现队列

          本文链接:https://www.haomeiwen.com/subject/eyldaftx.html