美文网首页
如何用栈实现队列?

如何用栈实现队列?

作者: 梦元_38ab | 来源:发表于2018-10-23 22:23 被阅读0次

问题出自程序员小灰 - 如何用栈实现队列?

代码实现


import java.util.*;

public class DummyQueue {

    Stack<Integer> stack1;

    Stack<Integer> stack2;

    DummyQueue(){

        stack1 = new Stack<Integer>();

        stack2 = new Stack<Integer>();

    }

    public void offer(int num) {

        stack1.push(num);

    }

    public int peek() {

        if(!stack2.isEmpty()) {

            return stack2.peek();

        }

        dropStack();

        return stack2.peek();

    }

    public int pull() {

    if(!stack2.isEmpty()) {

        return stack2.pop();

    }    

    dropStack();

        return stack2.pop();

    }

    public void dropStack() {

        while(!stack1.isEmpty()) {

            stack2.push(stack1.pop());

        }

        return;

    }

    public static void main(String[] args) {

        DummyQueue queue = new DummyQueue();

        queue.offer(1);

        queue.offer(2);

        queue.offer(3);

        System.out.println(queue.peek());

        System.out.println(queue.pull());

        System.out.println(queue.pull());

        queue.offer(4);

        queue.offer(5);

        System.out.println(queue.pull());

        System.out.println(queue.pull());

        System.out.println(queue.pull());

        System.out.println(queue.pull());

    }

}

测试结果

image

相关文章

  • 算法

    基本排序和查找算法? 如何用栈实现队列? TimSort原理?

  • 如何用栈实现队列?

    问题出自:程序员小灰 - 如何用栈实现队列? 代码实现: 测试结果:

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • Swift 队列&栈 相关操作

    栈 LIFO(后进先出) 队列 FIFO(先进先出) 队列与栈相互的实现 栈 - 队列实现 队列 - 栈实现 相关...

  • 38_两个有趣的问题

    关键词:通过栈实现队列、通过队列实现栈 0. 通过栈实现队列 用栈实现队列等价于用后进先出的特性实现先进先出的特性...

  • 栈&队列

    一、栈&队列总结 栈/队列的应用接雨水验证栈序列滑动窗口的最大值 栈/队列的特殊实现用两个栈实现队列用两个队列实现...

  • 队列之-队列实现栈

    一、队列实现栈核心算法概述 之前已经描述过了用栈实现队列的功能,见栈系列之-实现队列,那么同样队列也可以用来实现栈...

  • 算法-栈和队列算法总结

    栈和队列算法总结 1 模拟 1.1 使用栈实现队列 1.2 使用队列实现栈 2 栈的应用 2.1 栈操作 2.2 ...

  • leecode刷题(26)-- 用栈实现队列

    leecode刷题(26)-- 用栈实现队列 用栈实现队列 使用栈实现队列的下列操作: push(x) -- 将一...

网友评论

      本文标题:如何用栈实现队列?

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