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

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

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

题目

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(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(栈和队列的功能)” 的相关文章

抖音商家可以开通货款直充 抖音开通保证金服务

抖音小店商家可以开通货款直充保证金功能啦!对这个功能不太了解的商家可以通过下文,留下一个充分的印象。来看看: 抖音商家可以开通货款直充  抖音小店商家可以开通货款直充保证金功能啦!对这个功能不太了解的商家可以通过下文,...

抖音短视频音乐怎么配 抖音短视频怎样配乐

随着短视频行业发展的越来越好,很多人都开始了短视频创作。那么今天我们就一起来看看关于抖音短视频音乐怎么配,抖音短视频怎样配乐的相关内容。 抖音短视频音乐怎么配 一、使用第三方工具配音 既然玩过抖音,那必然...

制作短视频如何赚钱 制作短视频能赚钱吗

现如今,越来越多的人靠着短视频来赚取收益。短视频的发展越来越快。那么今天我们就一起来看看关于制作短视频如何赚钱,制作短视频能赚钱吗的相关内容。 制作短视频如何赚钱 一、制作短视频的设备准备 一提起制作短视...

抖音哪个领域能够赚到钱 抖音做哪方面的能赚钱

抖音平台的玩法越来越多了,很多人甚至在抖音开启了小店。今天我们就一起来看看关于抖音哪个领域能够赚到钱,抖音做哪方面的能赚钱的相关内容。 抖音哪个领域能够赚到钱       1、精品女装   账号多为服装穿...

抖音怎么赚钱 抖音怎么赚钱的几个方法

现在,大多数人都会玩抖音。抖音在短视频领域可谓是风生水起,而其中很多人都已经利用其赚钱啦,今天我们就一起来看看关于抖音怎么赚钱,抖音怎么赚钱的几个方法的相关内容。 抖音怎么赚钱  想要在抖音里赚钱,只有涨粉这一条路子吗?当然不是。目前来说...

抖音直播技巧有哪些,三个步骤带你上路

随着抖音观众越来越多,很多人在休息的时候选择打开抖音刷一刷,或者晚上看一看直播。抖音直播越来越火,步入我们日常的生活当中,大家现在一拿起手机就是看抖音了,工作疲劳了一天就想着看抖音。可是抖音直播并不是那么容易的,接下来就跟着小编一起来看看抖音直播技巧有哪些吧。 抖音直播技巧有哪些? 1...