当前位置:首页 > 引流 > 正文内容

如何用栈实现队列Java(栈和队列的功能)

admin3年前 (2022-10-10)引流1132

题目

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):

实现 MyQueue 类:

void push(int x) 将元素 x 推到队列的末尾

int pop() 从队列的开头移除并返回元素

int peek() 返回队列开头的元素

boolean empty() 如果队列为空,返回 true ;否则,返回 false

来源:力扣(LeetCode)

链接:
https://leetcode-cn.com/problems/implement-queue-using-stacks

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码

/**
 * https://leetcode-cn.com/problems/implement-queue-using-stacks/
 */
class MyQueue {
    Deque<Integer> inStack;
    Deque<Integer> outStack;
    /** Initialize your data structure here. */
    public MyQueue() {
        inStack = new LinkedList<>();
        outStack = new LinkedList<>();
    }
    /** Push element x to the back of queue. */
    public void push(int x) {
        inStack.push(x);
    }
    /** Removes the element from in front of queue and returns that element. */
    public int pop() {
        if (outStack.isEmpty()) {
            inStack2outStack();
        }
        return outStack.pop();
    }
    /** Get the front element. */
    public int peek() {
        if (outStack.isEmpty()) {
            inStack2outStack();
        }
        return outStack.peek();
    }
    /** Returns whether the queue is empty. */
    public boolean empty() {
        return inStack.isEmpty() && outStack.isEmpty();
    }
    private void inStack2outStack() {
        while (!inStack.isEmpty()) {
            outStack.push(inStack.pop());
        }
    }
}

总结

* 这是一个非常常见的题目,栈的特性是先入后出,队列的特性是先入先出。因此,我们可以用两个栈来实现队列,inStack记录输入,outStack记录输出,以上代码巧妙的地方是在outStack为空的时候,将inStack的数据输入进去。

扫描二维码推送至手机访问。

版权声明:本文中部分文字、图片、音频、视频来源于互联网及公开渠道,仅供学习参考,版权归原创者所有! 如侵犯到您的权益,请及时通知我们!我们将在第一时间内删除。

本文链接:http://www.73ya.com/yinliu/1755.html

分享给朋友:

“如何用栈实现队列Java(栈和队列的功能)” 的相关文章

怎么运用短视频素材,两种方法告诉你

我们知道近几年最火的是短视频,那么现在热议最多却是短视频制作,短视频制作中很重要的就是素材的运用,很多人会找短视频素材,但是并不懂得怎么使用,有的比较复杂。所以当我们找到短视频素材怎么用?接下来就跟着小编一起来看看吧。 怎么运用短视频素材, 第一种 不用剪辑,直接使用。 人物访谈,我...

抖音直播怎么获得更高的流量,有几个环节要注意的

在抖音上直播的人还是非常多的,各种类型的创作着都有。个人的直播也有公司的直播。直播间获得的流量也是不一样的,抖音官方给这些直播间分配流量的时候有自己的一套规则,也不是随随便便的,那么抖音直播怎么获得更高的流量?接下来就跟着小编一起来看看吧。 抖音直播怎么获得更高的流量 想要在抖音将直...

抖音极速版怎么拉新挣钱,具体操作流程

近期很火的不仅有抖音短视频推广,抖音极速版拉新也是一个大家谈论的很起劲的一个项目。有朋友参与过的就知道这个可以每一个大号可以邀请5个新人可以获得80-120之间的现金红包,听起来是不是很很心动。那么接下来就跟着小编一起来看看抖音极速版怎么拉新挣钱。 抖音极速版怎么拉新挣钱 你可以拿着...

抖音为什么会火,抖音是年轻人的主场

仅仅用了不到半年的时间,短视频就已经火了起来,不敢现象现在的短视频时代究竟发展有多好,越来越多的人可以对着app看上五六个小时。这些短视频App中,抖音无疑是其中的佼佼者。那么抖音为什么会火,接下来就跟着小编一起来看看吧。 抖音为什么会火 抖音的崛起始自《中国有嘻哈》,在独家赞助了这...

新手小白怎么找短视频精品素材库,11个经典素材展现短视频的魅力

不管是写文章,还是做短视频,都需要用到一定的素材,文章类需要用到图文,而视频类则需要用到一些视频的素材,视频素材准备充足,内容自然丰富,这是保证做短视频内容的基本要求。短视频越来越成为大家日常所熟知的一个平台,不管是在去上班的地铁,还是周六末在家无聊之时,都会有想观看短视频的愿望。 短...

中国最大的水上乐园(中国水上乐园排名第一)

水上乐园是主题公园中的一种,大多数娱乐设施与水有关,炎炎夏日也是玩水戏水的耗时间,而水上乐园现在也是夏日玩水的正确打开方式,那国内有哪些水上乐园呢,本文为大家整理了中国十大值得去的水上乐园。 1.长隆水上乐园 这是位于国家5A级旅游景区,十大国内好玩的游乐园广州长隆度假区内的全国著名...