Java两个栈实现队列

题目来自《剑指offer》

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

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

下面以一张图说明:

Java两个栈实现队列

 代码实现

    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();
        }
    }

上一篇:牛客入门题单:搜索与搜索剪枝


下一篇:thinkphp6限制频繁请求api