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

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

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

题目

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(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://73ya.com/yinliu/1755.html

分享给朋友:

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

抖音引流推广方法 抖音推广的引流技巧

现在很多的商家都知道做好抖音就可以获得很大的流量以及曝光度,但是如何让抖音号能更快地获得关注,或者如何能够引导更多的流量。今天我们就给大家分享抖音推广引流的技巧。 抖音引流推广方法 1、打造个人IP 打造...

抖音短视频怎么分屏 抖音短视频分屏怎么弄

玩过抖音的小伙伴应该都对分屏视频效果有印象,画面丰富又有美感,制作方法也很简单。今天小编就来分享关于抖音短视频怎么分屏,喜欢的朋友可以关注起来哦! 今天就和大家分享一款快速分屏工具——迅捷视频剪辑软件。即使非专业PR玩家,也能借助它,创造不一样的视觉效果。 首先把需要添加的素材拖...

2022年最火短视频素材网站,新手也能快速上手

做了短视频好长一段时间,短视频学了久了就越发现自己不会的越多,知道的越少。也会面临着方方面面的问题。缺少素材怎么办?这是很多短视频创作者都会有过的想法,那么接下来就跟着小编一起来看看吧。 2022年最火短视频素材网站 1、Mixkit——创意视频素材   Mixkit,做新媒体运营的朋...

抖音怎么引流,抖音引流技巧

近几年抖音的热潮一直都持续不减,很多人都想来抖音这个平台发展。但是做的人越多了却不好做了,前期的红利期已经过去了,现在要抓住新的机遇。不管是对于个人还是企业来说。现在面临的最大问题就是没有点击量,也没有曝光,让很多人望而却步。那么抖音应该如何引流呢,接下来就跟着小编一起来看看吧。 一、...

hermes香水价格(爱马仕香水价格排名)

很多人买香水是为了可以在特定场合喷洒时,有“属性加成”。我们用它来增加魅力、提升品味~     它可以给重要面试增添一份闪耀的自信心,也在约会时提高调情的作用……     到底喷什么香水,才能让人欲罢不能,在茫茫人海中骚得若即若离? 在众多香氛品牌中,爱马仕Hermès香水无疑是蕞...

外汇交易用什么软件好(最靠谱的国际汇款软件)

转眼2021年已经接近尾声了,世界经济的发展遭遇了严重冲击,国家、社会乃至个人都不得不面临这一场危机带来的严峻挑战。然而危中有机,在紧张的形势下也蕴含了新的机遇,更重要的是投资市场也出现了新的亮点。 前一段时间A股行情不断走高令人直呼“牛市来了”,贵金属投资的代表黄金更是站上了8年以来...