当前位置: 首页 > news >正文

MyQueue(队列)

目录

 一、队列的定义

二、队列方法的实现

1、定义队列

2、后端插入

3、前端操作

4、判断队列是否为空

5、队列大小

三、队列方法的使用


 一、队列的定义

  队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

  用双向链表实现一个队列

二、队列方法的实现

1、定义队列

public class MyQueue{static class ListNode {public int val;public ListNode next;public ListNode prev;public ListNode(int val) {this.val = val;}}public ListNode head;public ListNode last;public int UsedSize;

2、后端插入

 public boolean offer(int val) {ListNode node = new ListNode(val);if (head == null) {head = node;last = node;} else {last.next = node;node.prev = last;last = node;}UsedSize++;return true;}

3、前端操作

取出头节点的值并将头节点从链表中取出:

public int pop() {if (head == null) {return -1;}int retVal = head.val;if (head.next == null) {return retVal;}head = head.next;
、head.prev = null;UsedSize--;return retVal;}

取出头节点的值但不将头节点从链表中取出:

public int peek(){if (head==null){return -1;}return head.val;}

4、判断队列是否为空

 public boolean empty(){return head==null;}

5、队列大小

public int size(){return UsedSize;}

三、队列方法的使用

定义一个Main类,对定义的方法进行使用。

public class Main {public static void main(String[] args) {MyQueue myQueue=new MyQueue();myQueue.offer(1);myQueue.offer(2);myQueue.offer(3);myQueue.offer(4);myQueue.offer(5);myQueue.offer(6);System.out.println(myQueue.pop());System.out.println(myQueue.peek());System.out.println(myQueue.empty());System.out.println(myQueue.size());}}

执行结果:

1
2
false
5


以上就是对队列的简单实现

http://www.lryc.cn/news/371605.html

相关文章:

  • 【Pytorch】一文向您详细介绍 torch.nn.DataParallel() 的作用和用法
  • Windows本地使用SSH连接VM虚拟机
  • RPC(远程过程调用):技术原理、应用场景与发展趋势
  • iSCSI和FC存储
  • MPT(merkle Patricia trie )及理解solidity里的storage
  • 【代码随想录算法训练营第三十五天】 | 1005.K次取反后最大化的数组和 134.加油站 135.分发糖果
  • 桌面应用开发框架比较:Electron、Flutter、Tauri、React Native 与 Qt
  • 学习笔记丨嵌入式BI分析的12个关键功能
  • PostgreSQL17优化器改进(3)在使用包含操作符<@和@>时优化范围查询
  • 【因果推断python】32_合成控制2
  • Linux-笔记 全志平台OTG虚拟 串口、网口、U盘笔记
  • Qt实现SwitchButton滑动开关按钮组件
  • C++进阶:继承
  • SFTP工具
  • 服务器数据恢复—vxfs文件系统元数据被破坏的数据恢复案例
  • 【SCAU数据挖掘】数据挖掘期末总复习题库简答题及解析——上
  • 云时代的Java:在云环境中实施Java的最佳实践
  • STL - 常用算法
  • Qt | QTextStream 类(文本流)
  • Python学习笔记7:入门知识(七)
  • 如何翻译和本地化游戏?翻译访谈
  • [C++] 从零实现一个ping服务
  • 2024网络安全学习路线 非常详细 推荐学习
  • STM32F103ZET6_HAL_CAN
  • javaWeb项目-ssm+vue网上租车系统功能介绍
  • Go模板页面浏览器显示HTML源码问题
  • 弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
  • Mac下载了docker,在终端使用docker命令时用不了
  • Spring Security——基于MyBatis
  • Qt——升级系列(Level Four):控件概述、QWidget 核心属性、按钮类控件