美文网首页程序员代码面试
【算法题】由两个栈组成的队列

【算法题】由两个栈组成的队列

作者: 埋没随百草 | 来源:发表于2018-12-02 22:10 被阅读0次

编写一个类,用两个栈实现队列,支持队列的基本操作(addpollpeek)。

解题思路

为了实现栈后进先出的特点,设计栈stackPush用于实现add,栈stackPop用于实现polladd操作永远在stackPush上执行;对于poll操作,如果stackPop有元素,则直接从stackPop弹出,否则先把元素从stackPush导入到stackPop,然后再从stackPop弹出。

实现代码

import java.util.Stack;

public class MyQueue {
    private Stack<Integer> stackPush;
    private Stack<Integer> stackPop;

    public MyQueue() {
        this.stackPush = new Stack<>();
        this.stackPop = new Stack<>();
    }

    public void add(int num) {
        stackPush.push(num);
    }

    public int poll() {
        if (stackPop.empty() && stackPush.empty()) {
            throw new RuntimeException("Queue is empty");
        }

        if (stackPop.empty()) {
            while (!stackPush.empty()) {
                stackPop.push(stackPush.pop());
            }
        }

        return stackPop.pop();
    }

    public int peek() {
        if (stackPop.empty() && stackPush.empty()) {
            throw new RuntimeException("Queue is empty");
        }

        if (stackPop.empty()) {
            while (!stackPush.empty()) {
                stackPop.push(stackPush.pop());
            }
        }

        return stackPop.peek();
    }
}

相关文章

  • 【算法题】由两个栈组成的队列

    编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)。 解题思路 为了实现栈后进先出的特...

  • 由两个栈组成的队列

    2.由两个栈组成的队列 题目: 解题:

  • 数据结构——栈和队列

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

  • 由两个栈组成的队列

    题目 编写一个类,用两个栈实现队列,支持队列的基本操作(add, poll, peek) 要求 无 思路 使用两个...

  • 由两个栈组成的队列

    【题目】编写一个类,用两个栈实现一个类,支持队列的基本操作(add、poll、peek)。 【要求】要求即题目。 ...

  • 由两个栈组成的队列

    题目描述 编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek) 问题解答 要实现队列的先...

  • 2019-03-14

    【编程题】 用两个栈实现队列 【剑指系列】用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为...

  • JZ-005-用两个栈实现队列

    用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题...

  • 用两个栈实现队列

    原题链接 用两个栈实现队列 题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int...

  • 字节跳动 ios开发实习 面经 (已拿offer!)

    字节跳动 视频一面 算法题:两个队列模拟栈 从浏览器输入url到返回页面经历了什么 介绍常见的排序算法,以及他们的...

网友评论

    本文标题:【算法题】由两个栈组成的队列

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