模拟实现 队列 - JAVA(使用链表,数组)

2023-11-19

以链表实现

以数组实现


 

以链表实现


class Node{
    public int val;
    public Node next;
    public  Node(int val){
        this.val=val;
    }
}


public class MyQueue {
    public Node front;
    public Node rear;

    //入队-》尾插法
    public void offer(int val){
        Node node=new Node(val);
        if(front==null){
            front=node;
            rear=node;
        }
        else{
            rear.next=node;
            rear=node;
        }
    }

    //返回队头元素
    public int peek(){
        if(isEmpty()) {
            throw new RuntimeException("队列为空!");
        }
        return front.val;
    }

    //出队
    public int poll() {
        if(isEmpty()) {
            throw new RuntimeException("队列为空!");
        }
        int tmp=front.val;
        front=front.next;
        return tmp;
    }

    //是否为空
    public boolean isEmpty(){
        return front==null;
    }

    public static void main(String[] args) {
        System.out.println();
    }
    
}

以数组实现

public class MyCircularQueue {
    public int[] elem;
    public int front;
    public  int rear;

    public MyCircularQueue(int k){
        this.elem=new int[k];
    }

    //是否为空
    public boolean isEmpty(){
        return this.front==rear;
    }

    //是否为满
    public boolean isFull() {
        if((rear+1)%elem.length==front){
            return true;
        }
        return false;
    }
    //入队操作
    public boolean enQueue(int value){
        if(isFull()){
            return false;
        }
        elem[rear]=value;
        rear=(rear+1)%elem.length;
        return true;
    }

    //出队操作
    public boolean deQueue(){
        if(isEmpty()) {
            return false;
        }
        front=(front+1)% elem.length;
        return true;
    }

    //获取队头元素
    public int Front(){
        if(isEmpty()) {
            return -1;
        }
        return elem[front];
    }

    //获取队尾元素
    public int Rear(){
        if(isEmpty()) {
            return -1;
        }
        if(rear==0){
            return elem[elem.length-1];
        }
        else{
            return elem[rear-1];
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模拟实现 队列 - JAVA(使用链表,数组) 的相关文章

  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供

随机推荐

  • 复制对象时勿忘其每一个成分——条款12

    设计良好之面向对象系统 OO systems 会将对象的内部封装起来 只留两个函数负责对象拷贝 复制 那便是带着适切名称的copy构造函数和copy assignment操作符 我称它们为copying函数 条款5观察到编译器会在必要的时候
  • 杭州端点网络java开发实习生笔试题自我反省

    1 Spring Bean的默认范围是 A Prototype B Singleton C Abstract D Session 2 下列关于一个类的的静态成员的描述中 不正确的是 A 静态成员变量可被该类的所有方法访问 B 该类的静态方法
  • 二叉树的实现及其遍历(Python)

    树是一种基本的 非线性 数据结构 数据结构树分为 根 枝和叶三个部分 节点Node 是组成树的基本部分 每个节点具有名称或 键值 边Edge 边是组成树的另一个基本部分 根Root 树中唯一一个没有入边的节点 路径Path 由边依次连接在一
  • 2023年电赛E题详细讲解

    前言 E题是运动目标控制与自动追踪系统 其实就是一个红色激光追踪绿色激光 本文主要授人以渔 讲解思路 不含代码 建议自己编写 本文旨在和大家探讨一下更好的方案 欢迎讨论 读题 做题肯定是要读题的 本节主要是将一些主要的点 并反推出题人的出题
  • PLC控制电动机的顺序启动逆序停止

    一 PLC控制电动机延迟启动正转和反转 实验要求 当按下电动机的正转启动按钮时 电动机需要延迟30秒后 电动机才会正转启动工作 当按下反转按钮时 电动机需要延迟20秒后 电动机才会反转启动工作 当按下停止按钮时电动机立刻停止工作 PLC I
  • 浅谈系列之DevSecOps(一)目标及优点

    一 DevOps目标 说到DevSecOps就不得不提DevOps 后者的目标是提升整个研发效能 进行更便捷 更快捷 更可靠的交付 从而提高产品竞争优势 DevOps模糊了以往研发模式中开发 测速 运维等岗位和角色的界限 加强了他们之间的协
  • 如何通过Charles+BurpSuite的配合在PC端抓到手机包

    渗透测试工作记录 文章目录 渗透测试工作记录 前言 一 Charles是什么 二 实现步骤 以Mac端抓包IOS微信小程序为例 1 在Charles下设置代理的端口 2 分别在PC端和手机端安装证书 3 关闭macOS代理 打开外部代理 4
  • ESP32-CAM配置开发环境并烧录程序运行

    环境准备 ESP32 CAM开发板 烧录器 摄像头和一根USB线束连接电脑即可 Arduino下载完成后打开 不同版本的菜单栏可能稍微不同 仔细找即可 选择下面的选项 联网自动下载ESP32 CAM的 环境 端口和当前的一致即可 正常连接应
  • QT项目实战之翻金币小游戏

    目录 一 实现效果 二 实现过程 1 创建项目 添加项目资源 2 创建主场景 mainscene cpp h 3 自定义开始按钮 mypushbutton cpp h 4 创建选择关卡场景 chooselevelscene cpp h 5
  • js-年月日时分秒字符串切割,只显示年月日

    substring 方法用于提取字符串中介于两个指定下标之间的字符 var date 2020 01 01 00 00 00 date substring 0 10 console log date 2020 01 01
  • 怎么创建llvm的编译环境

    1 安装环境 首先 本人在下面操作使用的是ubuntu16的版本 具体如下图所示 2 安装环境参考网址 https source android com setup build initializing 3 下载llvm代码 官网下载9 0
  • Swift语法学习--字符&字符串

    Swift语法学习 字符 字符串
  • 疯壳AI语音及人脸识别3-4AI人脸系统架构

    详情地址 https fengke club GeekMart views offline ai 购买链接 https fengke club GeekMart su fKw7Nb7oC jsp 视频地址 https fengke club
  • sql修改一列或所有列的表类型和注释

    一列 ALTER TABLE cspg mp db mp device electric consumption statistics 1d MODIFY COLUMN electric double 20 2 NULL COMMENT 电
  • 链表面试题(一):反转链表的算法实现

    关于链表的考察 链表是面试里面经常涉及到的考点 因为链表的结构相比于Hashmap Hashtable Concurrenthashmap或者图等数据结构简单许多 对于后者更多面试的侧重点在于其底层实现 比如Hashmap中Entry
  • Python基础语法:数据分析利器

    欢迎来到我的博客 作者 秋无之地 简介 CSDN爬虫 后端 大数据领域创作者 目前从事python爬虫 后端和大数据等相关工作 主要擅长领域有 爬虫 后端 大数据开发 数据分析等 欢迎小伙伴们点赞 收藏 留言 上一篇文章已经跟大家介绍过 数
  • Jquery ligerui下拉框复选,使下拉框中相应值对勾选中

    othertypeCombox ligerGetComboBoxManager selectValue 1 2 3 4 othertypeCombox ligerGetComboBoxManager bulidContent 必须加上后一行
  • python创意实用案例-9个 Python 实用案例分享

    1 整理字符串输入 整理用户输入的问题在编程过程中极为常见 通常情况下 将字符转换为小写或大写就够了 有时你可以使用正则表达式模块 Regex 完成这项工作 但是如果问题很复杂 可能有更好的方法来解决 user input This str
  • 让你不得不学Python 的十大重要理由

    简单易学 Python是一种代表简单主义思想的语言 阅读一个良好的Python程序就感觉像是在读英语一样 它使你能够专注于解决问题而不是去搞明白语言本身 Python极其容易上手 因为Python有极其简单的说明文档 速度快 Python
  • 模拟实现 队列 - JAVA(使用链表,数组)

    以链表实现 以数组实现 以链表实现 class Node public int val public Node next public Node int val this val val public class MyQueue publi