美文网首页
由两个栈组成的队列

由两个栈组成的队列

作者: Tank_Mao | 来源:发表于2020-09-28 23:22 被阅读0次

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

【要求】
要求即题目。

【解答】
一个栈作为压入栈,记为stackPush,另一个作为弹出栈,记为stackPop。

package pers.mao.stackAndQueue.demo_02;

import java.util.Stack;

/**
 * @author Mao Qingbo
 * @date 2020-09-28
 */
public class TwoStackQueue {
    Stack<Integer> stackPush;
    Stack<Integer> stackPop;

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

    /**
     * 把stackPush的数据压入stackPop
     */
    private void pushToPop(){
        if(stackPop.empty()){
            while(!stackPush.empty()){
                stackPop.push(stackPush.pop());
            }
        }
    }

    /**
     * newNum进入队列
     * @param newNum 增加数据
     */
    public void add(int newNum){
        stackPush.push(newNum);
        pushToPop();
    }

    /**
     * @return 返回队列的队头
     */
    public int peek(){
        if(stackPush.empty() && stackPop.empty()){
            throw new RuntimeException("This queue is empty!");
        }
        pushToPop();
        return stackPop.peek();
    }
}

相关文章

  • 由两个栈组成的队列

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

  • 由两个栈组成的队列

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

  • 由两个栈组成的队列

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

  • 由两个栈组成的队列

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

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

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

  • 栈&队列

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

  • 栈和队列

    两个栈实现队列 两个队列实现栈

  • 栈和队列的相互实现

    两个栈实现队列: 一个栈用来入,一个栈用来出 两个队列实现栈: 入栈的时候正常存入一个队列,出栈的时候用另一个队列...

  • 成长(10/2000)——面试题合集7

    事件循环机制event-loop 事件循环机制由三部分组成:调用栈、消息队列和微任务队列。 event-loop开...

  • 队列、栈

    两个队列实现一个栈 两个栈实现一个队列

网友评论

      本文标题:由两个栈组成的队列

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