两个栈实现队列

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

思路:一个栈如stack1始终是用来存储数据,当另外一个栈不为空时直接从stack2中弹出,若为空时,则将stack1中的值全部压入到stack2中,再将stack2中元素的值取出即可。

posted @ 2016-08-27 17:02  樱圃  阅读(81)  评论(0编辑  收藏  举报