Java教程

Java两个栈实现队列

本文主要是介绍Java两个栈实现队列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目来自《剑指offer》

用两个栈实现一个队列,实现尾插和头删的功能。

基于两个数据结构的特点,不难思考出两者的交互方式。

下面以一张图说明:

 代码实现

    static final Stack<Integer> stack1 = new Stack<>();
    static final Stack<Integer> stack2 = new Stack<>();
    // 尾插
    private static void appendTail(Integer i){
        stack1.push(i);
    }
    //头删
    private static void deleteHead(){
        if(stack2.empty()){
            while (!stack1.empty()){
                stack2.push(stack1.peek());
                stack1.pop();
            }
        }

        if(!stack2.empty()){
            stack2.pop();
        }
    }

这篇关于Java两个栈实现队列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!