首页 > 其他分享 >代码随想录——栈与队列

代码随想录——栈与队列

时间:2022-12-06 11:13:21浏览次数:63  
标签:队列 代码 随想录 pop public isEmpty element stackOut stackIn

用栈实现队列

题目 简单

把 pop() 和 peek() 中可复用的部分提取出来

class MyQueue {

    Stack<Integer> stackIn;
    Stack<Integer> stackOut;

    /** Initialize your data structure here. */
    public MyQueue() {
        stackIn = new Stack<>(); // 负责进栈
        stackOut = new Stack<>(); // 负责出栈
    }
    
    /** Push element x to the back of queue. */
    public void push(int x) {
        stackIn.push(x);
    }
    
    /** Removes the element from in front of queue and returns that element. */
    public int pop() {    
        dumpstackIn();
        return stackOut.pop();
    }
    
    /** Get the front element. */
    public int peek() {
        dumpstackIn();
        return stackOut.peek();
    }
    
    /** Returns whether the queue is empty. */
    public boolean empty() {
        return stackIn.isEmpty() && stackOut.isEmpty();
    }

    // 如果stackOut为空,那么将stackIn中的元素全部放到stackOut中
    private void dumpstackIn(){
        if (!stackOut.isEmpty()) return; 
        while (!stackIn.isEmpty()){
                stackOut.push(stackIn.pop());
        }
    }
}

 

标签:队列,代码,随想录,pop,public,isEmpty,element,stackOut,stackIn
From: https://www.cnblogs.com/CWZhou/p/16954640.html

相关文章

  • Windows下使用vscode连接Linux服务器进行C++代码运行与调试
    参考链接:vscode+SSH配置https://blog.csdn.net/irober/article/details/112724986launch.json+tasks.json配置https://blog.csdn.net/jackuylove/article/deta......
  • 卷积神经网络模型之——LeNet网络结构与代码实现
    文章目录​​LeNet简介​​​​LeNet7层结构​​​​C1:第一个卷积层​​​​S2:第一个下采样层​​​​C3:第2个卷积层​​​​S4:第2个下采样层​​​​C5:第3个卷积层​......
  • 卷积神经网络模型之——VGG-16网络结构与代码实现
    文章目录​​VGGNet简介​​​​VGG16网络结构​​​​使用pytorch搭建VGG16​​​​features​​​​classifier​​​​完整代码​​VGGNet简介VGG原文:Verydeepconvolut......
  • 卷积神经网络模型之——GoogLeNet网络结构与代码实现
    文章目录​​GoogLeNet网络简介​​​​GoogLeNet网络结构​​​​Inception之前的几层结构​​​​Inception结构​​​​Inception3a模块​​​​Inception3b+MaxPool​......
  • Java使用LinkedList模拟一个堆栈或者队列数据结构
    用Java模拟一个堆栈或者队列数据结构。首先得明白堆栈和队列的数据结构:堆栈:先进后出队列:先进先出LinkedList中刚好有addFirst()和addLast()方法。1.publicclassStac......
  • 前端代码规范
    1.京东凹凸实验室前端代码规范,网址:[https://guide.aotu.io/](https://guide.aotu.io/)(1)、正确写法 <br>   不推荐写法:<br/>(2)、纯数字输入框   使用 type="t......
  • Span<T> 和 Memory<T> 编写高性能代码
    在C#中使用Span<T>和Memory<T>编写高性能代码  目录在C#中使用Span 和Memory 编写高性能代码.NET中支持的内存类型.NETCore2.1中新增的类型......
  • 一种有界队列(Bounded Buffer)的实现
    一、概述在有CPU和GPU参与的一种运算中,比如深度学习推理,CPU需要预处理数据,然后交给GPU处理,最后CPU对GPU的运算结果进行后处理。在整个过程中都是FIFO,即数据......
  • 代码随想录Day35
    LeetCode236.二叉树的最近公共祖先给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖......
  • ASP.NET Core上传文件 示例代码记录
    微软文档https://learn.microsoft.com/zh-cn/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.1 到下载页面如下: 下载代码后到3.x\SampleApp目录,vs打开该......