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

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

admin2年前 (2022-10-10)引流648

题目

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(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的数据输入进去。

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

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

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

分享给朋友:

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

抖音引流是什么意思 抖音引流是干什么的

抖音是现在用户群体最多的短视频软件,很多人现在都把客户群体放在了抖音上。抖音引流就是将抖音的流量客户吸引过来。那么今天我们就一起来看看关于抖音引流是什么意思,抖音引流是干什么的相关内容。 抖音引流是什么意思  巨量千川素材...

抖音里最受欢迎的短视频有哪些,各种类型都有

抖音短视频千奇百怪,各种花样都有,千万种类型。不管是搞笑剧本,还是休闲娱乐,还是美女帅哥,应有尽有。只要你想,你也可以成为当中的一员也没有问题。以下这些视频既火又受欢迎。那么接下来就跟着小编一起来看看吧。 一是美女型。毫无疑问,美女是抖音火的主要节点,如果抖音里没有美女,抖音也就失去存...

快手极速版怎么挣钱,邀请好友得更多

快手极速版怎么挣钱?快手一直以来有个挣钱的渠道,但是很多人都不知道,不仅看视频可以挣钱,而且观看的多挣得也多,不仅如此,邀请新用户来看也能获取奖励。听到这里,是不是有点后悔错过了这个赚钱的渠道。那么接下来就跟着小编一起来看看吧。 邀请新朋友奖励 邀请好友当日奖励为最高8元,用户没使用过...

2022年抖音的发展趋势怎么样,有哪几种抖音变现方式

2022年抖音依旧很热门,最近发现创作短视频的年轻人已经非常之多了,其次对于从传统行业的转型话题也非常吸引大家关注,那么接下来2022年抖音的发展趋势怎么样,就跟着小编一起来看看吧。希望对相关的从业者有所帮助。 从早期只要进场平台就喂流量,到2019年短视频开始内卷,2020年疫情爆发...

扫描软件哪个好用又免费(真正免费的扫描软件app推荐)

还在打印机前排队扫描文件?还在为剪裁、合并大量扫描件而苦恼?扫描软件导出时有推广水印,不适合工作用? 工作中我们经常要扫描备份一些重要文件,可是不顺手的扫描仪、软件影响了我们的效率,职场人急需一个合适的扫描工具。 坚果云扫描是坚果云旗下的一款优质办公软件, 免费无广告、导出无水印、自带...

三菱触摸屏如何安装软件包(三菱触摸屏安装步骤)

近年来我国制造业发展迅速,设备自动化程度越来越高。智能制造,工业4.0等一系列高大上的名词出现在我们眼前。为实现这一宏伟目标,每一位工程技术人员都在努力耕耘。 实现这宏伟目标的前提需要足够硬件的支持,今天我们就着重谈谈plc和触摸屏通讯的问题。在工厂里工作过的人或多或少都见过触摸屏。在...