Java用链表实现队列

2023-11-07

/**
 * 链表实现队列
 */
public class LinkedQueue {
    class Node{
        int val;
        Node next;
        public Node(int val){this.val=val;}
        public Node(int val,Node next){this.val=val;this.next=next;}
    }

    // 队头指针
    Node front;
    // 队尾指针
    Node rear;
    // 队列长度
    int queueSize;
    public LinkedQueue(){}

    /**
     * 入队,如果队列为空,则将头尾指针都指向这个元素,否则将队尾元素的next域设为新入队元素,再将尾指针指向新入队元素
     * @param element
     * @return
     */
    public boolean enQueue(int element){
        if(isEmpty()){
            front=new Node(element,null);
            rear=front;
            queueSize++;
            return true;
        }
        Node node = new Node(element,null);
        rear.next=node;
        rear=node;
        queueSize++;
        return true;
    }

    /**
     * 出队,头指针指向它的next域,如果队列中只有一个元素,那么将尾指针也只想next域,也就是null
     * @return
     */
    public int deQueue(){
        if(isEmpty()){
            throw new RuntimeException("队列已经空了!");
        }
        int element=front.val;
        front=front.next;
        if(queueSize==1){
            rear=front;
        }
        queueSize--;
        return element;
    }

    public boolean isEmpty(){
        return front==null && front==rear && queueSize==0;
    }

}

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

Java用链表实现队列 的相关文章

  • Java:获取当前正在执行的Method对应的对象

    将当前正在执行的方法作为 Method 对象获取的最优雅的方法是什么 我的第一个明显的方法是在辅助类中使用静态方法 该方法将加载当前线程堆栈 获取正确的堆栈跟踪元素 并根据其信息构造 Method 元素 有没有更优雅的方法来实现这一目标 这
  • 获取jdbc中表依赖顺序

    我在 MySQL 数据库中有一组表 A B C D 依赖关系如下 B gt C gt A 和 D gt A 也就是说 A 有一个 PrimaryKey C 有一个外键指向 A 的主键 B 有一个外键指向 C 的主键 类似地 D 有一个外键指
  • 如何降低圈复杂度?

    我正在开发一个将 RequestDTO 发送到 Web 服务的类 我需要在发送请求之前验证该请求 请求可以从 3 个不同的地方发送 并且每个 请求类型 有不同的验证规则 例如请求1必须有姓名和电话号码 请求2必须有地址等 我有一个 DTO
  • 以点作为分隔符分割字符串

    我想知道我是否要在一个字符串上分割字符串 正确的方式 我的代码是 String fn filename split return fn 0 我只需要字符串的第一部分 这就是我返回第一项的原因 我问这个是因为我在 API 中注意到 意味着任何
  • 使用 JAXB 编组 LocalDate

    我正在构建一系列链接类 我希望能够将其实例编组到 XML 以便我可以将它们保存到文件中并稍后再次读取它们 目前我使用以下代码作为测试用例 import javax xml bind annotation import javax xml b
  • 空 EntityManager/EJB 注入 MDB

    我有一个消息驱动 bean MDB 部署到 WebLogic 12 1 3 我尝试使用 PersistenceContext 注释将实体管理器注入 MDB 但实体管理器为空 我还尝试注入一个简单的无状态会话 bean 它也是空的 但是 Me
  • 动画图像视图

    目前我正在开发一款游戏 这是我的游戏的详细信息 用户应选择正确的图像对象 我希望图像从左到右加速 当他们到达终点时 他们应该再次出现在活动中 这是我正在处理的屏幕截图 我有 5 个图像视图 它们应该会加速 您有此类动画的示例代码吗 非常感谢
  • FFmpeg 不适用于 android 10,直接进入 onFailure(String message) 并显示空消息

    我在我的一个项目中使用 FFmpeg 进行视频压缩 在 Android 10 Google Pixel 3a 上 对于发送执行的任何命令 它会直接进入 onFailure String message 并显示空消息 所以我在我的应用程序 g
  • 如何屏蔽 Protobuf 中的某些字段

    我找不到一种方法来屏蔽 protobuf 结构中的某些字段 我确实阅读了有关 FieldMaskUtil 的内容并尝试了几个示例 但它似乎做了相反的操作 即复制 FieldMask 中提到的字段 这与我想要的不同 这是示例结构和相应的测试代
  • 此版本不符合 Google Play 64 位要求,添加库后仍然出现错误

    我正在 Play 商店上传一个视频编辑器应用程序 其中包含带有一些本机代码的库 所以我通过将其添加到 gradle 来使其兼容 64 位 ndk abiFilters armeabi v7a arm64 v8a x86 x86 64 添加了
  • Hystrix是否可以订阅CircuitBreaker开启事件?

    对于单元测试 我希望能够订阅 Hystrix 事件 特别是在断路器打开或关闭时发生事件 我四处寻找示例 似乎解决方法是利用指标流并监视断路器标志 由于 Hystrix 是基于 RxJava 构建的 我认为应该在某个地方有一个事件订阅接口 在
  • 如何使用 BufferedReader 对象从 Java 中的一行读取多个整数值?

    我正在使用 BufferedReader 类读取 Java 程序中的输入 我想读取用户的输入 该用户可以在带空格的单行中输入多个整数数据 我想读取整数数组中的所有这些数据 输入格式 用户首先输入他 她想要输入的数字数量 然后在下一行中使用多
  • 无法在 Mac OS X 上启动应用程序 我收到错误 LSOpenURLsWithRole() 应用程序失败,错误为 -10810

    问题 我正在尝试启动一个应用程序 遗传网络分析仪 http www genostar com category products gna 但它默默地失败了 使用时open gna app产生以下错误消息 LSOpenURLsWithRole
  • JavaFx 中装饰且不可移动的舞台

    我想在 JavaFx 中创建一个装饰舞台 它也将不可移动 我正在从另一个控制器类创建这个阶段 我能够创造和展示舞台 但它是自由移动的 我怎样才能创建这个 非常感谢帮助和建议 我把打开新关卡的方法贴出来 private void addRec
  • 如何获取 Android 中临时文件的文件大小?

    如果我使用 openFileOutput 创建并写入临时文件 写入完成后如何获取文件大小 我希望这可以帮助你 File file new File selectedPath int file size Integer parseInt St
  • Kerberos 缓存票证

    我使用的是 Windows 7 64 位 我创建了一个简单的应用程序来对实现 PrivilegedAction 的类的 run 方法中的文件进行计数 以下是我的 jaas conf 文件 CountFiles com sun securit
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 如何在 Java 中创建要打印到 JFrame 的 JLabels 数组

    我正在尝试制作一系列标签 每个标签都有一个来自函数的不同值 我不知道要使用的标签的确切数量 我的意思是可以打印任意数量的值 请帮我做这件事 很简单 只需一个方法返回一个数组或一些 JLabels 集合 并将它们全部添加到您的 JCompon
  • JPA - 非主键字段上的 @OneToOne 关系不起作用

    我有一个 Spring Data JPA 后端 使用 Hibernate 作为 ORM 实现 这是模型 Person MailConfig id PK uid PK FK Person uid uid Entity
  • 当我在 Java 中输入 IP 时无法连接到我的服务器

    好的 我正在尝试学习 Java 客户端 服务器的内容 并且正在浏览教程代码 如下所示 当我将 localhost 更改为我的 IP 时 它会停止工作 请帮忙 编辑 127 0 0 1 似乎也可以工作 但不是我的真实IP Copyright

随机推荐

  • Android面试题之性能优化篇,kotlin版权

    1 如何对 Android 应用进行性能分析 不考虑使用其他第三方性能分析工具的话 我们可以直接使用 ddms 中的工具 其实 ddms 工具已经非常的强大了 ddms 中有 traceview heap allocation tracke
  • Ad15的元器件的3D制作

    1 画元器件的封装 2 在中设置元器件的高度以及浮空高度 颜色 3 然后会出现话网格的箭头 进行绘画 此时已完成3d的绘制 按3试一下效果 4
  • Numpy高级数组索引

    NumPy 高级索引 NumPy 比一般的 Python 序列提供更多的索引方式 除了之前看到的用整数和切片的索引外 数组可以由整数数组索引 布尔索引及花式索引 整数数组索引 对于一个二维数组 要获取数组中 0 0 1 1 和 2 0 位置
  • clusterrole访问权限

    什么是RBAC RBAC全称Role Based Access Control 是Kubernetes集群基于角色的访问控制 实现授权决策 允许通过Kubernetes API动态配置策略 什么是Role Role是一组权限的集合 例如Ro
  • cjson 判断字段是否纯在_cJSON API 接口使用说明

    cJSON API 接口使用说明 cJSON的介绍 cJSON是一个轻量级的JSON解析器使用ANSIC标准 所谓的轻量级 如果你的项目需要使用到解析JSON 那么只需要将cJSON的库中的cJSON h和cJSON c放入到你的项目中适当
  • Linux防火墙命令

    文章目录 一 Linux防火墙基本命令 1 查看防火墙状态 2 开启防火墙 3 关闭防火墙 4 重启防火墙 5 禁用防火墙 禁止开机启动 6 开机启用防火墙 开机自启防火墙 7 查看防火墙所有开放的端口 8 开放指定端口号 9 关闭指定端口
  • 解决iframe内使用scrollIntoView导致外部父元素也滚动的问题

    功能场景 解决iframe内使用scrollIntoView导致外部父元素也滚动的问题 滚动原因 使用原生的 element scrollIntoView 时 会同时使 element 所在容器也会进行 scrollIntoView 操作
  • 分享个Java低代码开发平台,免费好用

    概要 1 免费低代码平台 2 天翎低代码平台特色 薅羊毛 免费领低代码平台 在找好用实惠的低代码平台撸毕设 这里有 天翎诚意之作 免费送你低代码平台 为了回馈客户 天翎MyApps平台正式上线了会员系统 用户在会员中心 https mall
  • 1.1 cout/cin/函数 练习

    1 1 cout cin 函数 练习 1 程序 Author may Date 2017 04 21 Function 输入输出 cin cout 练习 函数练习 include
  • (java 基础知识)java序列化和反序列话总结

    序列化 将java对象转换为字节序列的过程叫做序列化 反序列化 将字节对象转换为java对象的过程叫做反序列化 通常情况下 序列化有两种用途 1 把对象的字节序列永久的保存在硬盘中 2 在网络上传输对象的字节序列 相应的API java i
  • 6_sleuth-zipkin-spring_boot_admin 链路追踪

    文章目录 Sleuth zipkin SpringBootAdmin 邮件通知 钉钉通知 如果能跟踪每个请求 中间请求经过哪些微服务 请求耗时 网络延迟 业务逻辑耗时等 我们就能更好地分析系统瓶颈 解决系统问题 Sleuth span 跨度
  • 软件人才从这里飞翔——访北京大学软件学院院长陈钟博士

    还是春寒料峭的季节 一年一度的研究生招生工作正在紧张进行中 从北京大学软件学院传出消息 虽然今年招生人数较多 但生源仍然非常充足 现在软件学院软件工程硕士研究生的报考人数已经是北京大学最集中报考的几个专业之一 所以 今年报考北大软件学院的难
  • C标准时间与时间戳的相互转换

    什么是时间戳 时间戳是指格林威治时间自1970年1月1日 00 00 00 GTM 至当前时间的总秒数 它也被称为Unix时间戳 Unix Timestamp 时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据 通常是一个
  • Python 16.OpenCV 腐蚀,膨胀,开运算, 闭运算,礼帽,黑帽

    import cv2 import numpy as np img cv2 imread pic7 PNG 0 img1 cv2 imread pic8 PNG 0 img2 cv2 imread pic9 PNG 0 kernel np
  • CISSP一次通过指南(文末附福利)

    CISSP相关资料 考试机构的复习题 中英文教材 思维导图 点击文章末尾卡片 扫描二维码加我耗油免费领取资料哦 CISSP 英文全称 Certified Information Systems Security Professional 中
  • 网页参考资料

    1 w3school 2 蓝色理想 http www blueidea com 3 web前端开发 http www candoudou com
  • 福禄克铜缆测试参数:近端串扰和远端串扰参数之间的区别

    串扰指的是网线在传输网络信号中 产生了彼此的互相干扰 严重的时候会影响到网络传输得质量 网线的双绞程度越紧密 绞距越均匀时 其抗干扰的能力也会越强 且内部的串扰也会越小 在长距离网络传输中 效果也就越好 串扰会对具体的一对导线或整根电缆形成
  • linux 文件扫描程序 性能,Linux性能优化(三)——sysstat性能监控工具

    一 sysstat简介 1 sysstat简介 sysstat提供了Linux性能监控工具集 包括sar sadf mpstat iostat pidstat等 用于监控Linux系统性能和使用情况 iostat 提供CPU统计 存储I O
  • MFC异形对话框

    基本原理 获取窗体区域 指定一个颜色为透明色 遍历位图 将图上所有该色区域从窗体区域中去除 这样最后就得到了一个异形窗体 然后把背景图绘制在该窗体上 注意绘制的时候 作为透明的部分依然会被以原色绘制 但是由于绘制的地方并没有窗体 故而是显示
  • Java用链表实现队列

    链表实现队列 public class LinkedQueue class Node int val Node next public Node int val this val val public Node int val Node n