《java数据结构》--队列详解

一.认识队列🐱

初识队列😸

队列和栈类似都对数据的存取有着严格的要求,不同的是栈遵循先进后出的原则,而队列遵循先进先出的原则,栈是只有一端可以存取,队列是一端存,一端取。这里我来画一个图(画的不好请见谅)😿😼:

我们一般将如数据的操作叫入队,入队的一端称作队尾,取出数据的操作叫做出队,出队的一端称作队头,根据上面的图我们可以发现元素1是最先入队的并且是最先出队的。举个例子,我们可以将队列看作一把手枪,最先压入的子弹是最先打出的😼。

Java中队列的使用😸

我们要注意的是在java中Queue是一个接口,不能直接实例化,但是LinkedList实现了Queue接口(它的底层是用一个双向链表实现的),可以用Queue接口去实例化LinkedList对象😉。

一下是一下常见的队列方法(之后一一实现):

二.模拟实现队列🐱

队列的一般是用链表来实现因为,使用链表进行头删尾插会比较方便。

//为什么用头删?🤔

因为我们使用的是单链表,如果用尾删,就需要遍历到倒数第二个结点时间复杂度尾O(n),如果头删只需要将头节点指向下一个就行

队列的创建😸

博主这里也是用链表来实现的,为了方便进行尾插,这里我们不仅定义一个头结点还定义一个尾结点。😽

判断队列是否为空😸

直接判断头结点是否为空就可以了

入队😸

我们使用尾插入队

//如果队列为空要让头结点尾节点,都等于新结点

出队😸

查看队头😸

直接返回头结点数据

获取队列中有效元素个数😸

到这里队列我们就聊完了队列,如果有上面不懂的或者其他见解欢迎在下方评论或者私信博主后序博主也会更新一下有关队列的OJ题欢迎大家捧场!!!🥰🥰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/655173.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java的类路径究竟是什么?

回答 问了chatgpt这个问题,首先类路径的定义是: 是指一组路径,这些路径告诉Java虚拟机(JVM)和类加载器在哪里可以找到应用程序所需的类和资源文件。说白了就是在运行java程序的时候需要先将java源代码编译成class文件…

Layui 项目打开左侧菜单空白解决方案

home/index.html 页面中 替换 navigation 为 menu

网络安全行为可控定义以及表现内容简述

在数字化快速发展的今天,网络安全已成为国家和企业不可或缺的防线。据统计,网络攻击事件频发,给全球经济带来了巨大损失。因此,确保网络安全行为可控显得尤为重要。今天我们来聊聊网络安全行为可控定义以及表现内容。 网络安全行为…

【Rust日报】Rust 中的形式验证

文章 - 未来的愿景:Rust 中的形式验证 这篇文章回顾了形式化验证的基本概念,作者展示了如何使用 Hoare triples 来描述和推理程序的正确性,以及如何使用分离逻辑来解决验证的复杂性。文章还解释了为什么 Rust 适用于形式化验证,以…

Java程序员必备技能之MySQL数据库 图解整理/快速入门

恭喜大家来到全新的篇章——MySQL数据库,这一篇我们将学会MySQL数据库的原理、使用sql对数据库的增删改查操作、以及对MySQL数据库的权限管理和用户管理等内容。请大家耐心看下去,相信大家在看完这篇文章后,一定可以学会MySQL数据库(不会Java也可以学会!)。 ps:想要补充…

Shell脚本基本命令

文件名后缀.sh 编写shell脚本一定要说明一下在#!/bin/bash在进行编写。命令选项空格隔开。Shell脚本是解释的语言,bash 文件名即可打印出编写的脚本。chmod给权限命令。如 chmod 0777 文件名意思是给最高权限。 注意:count赋值不能加空格。取消变量可在变…

菜鸟学dubbo 2.x配置笔记(更新中)

一、标签示例 provider.xml 示例 <beans xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo"http://dubbo.apache.org/schema/dubbo"xmlns"http://www.springframework.org/schema/beans"xsi:schemaLocation"http://w…

树莓派开箱

1.树莓派4B配置 CPU&#xff1a;64位1.5GHZ四核处理器。 GPU:Broadcom VideoCore VI500MHZ 蓝牙5.0 电源Type C(5V 3A),也可以使用排针链接5V锂电池最大放电电流必须达到3A。 还有千兆以太网等以后用到再说。 接下来进入文章重点 2.镜像文件烧录 前期准备&#xff1a;1…

java项目之飘香水果购物网站(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的飘香水果购物网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 飘香水果购物网站的主要…

GANs生成对抗网络的学习

1.GANs生成网络的定义 GANs是一种深度学习模型&#xff0c;用于生成新的数据实例&#xff0c;如图像、音频和文本。它主要由两部分组成&#xff1a;生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;。 2.生成器 生成器的目标是创造出…

百川股份:大王蹲完,小王蹲

一根大阴线&#xff0c;正丹股份的十倍股传奇之旅即将落幕&#xff1f; 有股民表示&#xff1a;化工板块还有高手&#xff0c;大王倒了还有小王。 今天我们聊的正是化工板块被称为“正丹第二”的百川股份。 虽难比正丹的十倍涨幅&#xff0c;但百川也不简单&#xff0c;3个月…

基于python flask +pyecharts实现的气象数据可视化分析大屏

背景 气象数据可视化分析大屏基于Python Flask和Pyecharts技术&#xff0c;旨在通过图表展示气象数据的分析结果&#xff0c;提供直观的数据展示和分析功能。在当今信息化时代&#xff0c;气象数据的准确性和实时性对各行业具有重要意义。通过搭建气象数据可视化分析大屏&…

使用 Flask 和 Celery 构建异步任务处理应用

文章目录 什么是 Flask&#xff1f;什么是 Celery&#xff1f;如何在 Flask 中使用 Celery&#xff1f;步骤 1&#xff1a;安装 Flask 和 Celery步骤 2&#xff1a;创建 Flask 应用程序步骤 3&#xff1a;运行 Celery Worker步骤 4&#xff1a;启动 Flask 应用程序 结论 在构建…

鸿蒙开发接口图形图像:【@ohos.display (屏幕属性)】

屏幕属性 屏幕属性提供管理显示设备的一些基础能力&#xff0c;包括获取默认显示设备的信息&#xff0c;获取所有显示设备的信息以及监听显示设备的插拔行为。 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/…

js检验一个字符串是否是正确时间格式的工具方法

js检验一个字符串是否是正确时间格式的工具方法 (()> {/*** 检验字符串是否为时间格式* param {String} date 需要检验的时间格式* returns true 为时间格式&#xff0c;false 为非时间格式*/const isTimaFormat (date) > {if(!date) return false;try{const tempTime …

捕食者优化算法,原理详解,MATLAB代码免费获取

捕食者优化算法&#xff08;Hunter–prey optimization&#xff0c;HPO&#xff09;是一种受自然启发的群智能优化算法。该算法的灵感来自于捕食动物(如狮子、豹和狼)以及猎物(如雄鹿和瞪羚)的行为。动物狩猎行为有很多场景&#xff0c;其中一些场景已经转化为优化算法。本文使…

常见开源蜜罐系统

蜜罐系统&#xff08;Honeypot&#xff09;在信息安全领域中是一种被广泛使用的技术&#xff0c;旨在吸引和诱导黑客入侵&#xff0c;从而获取和分析攻击者的行为和手段。以下是一些常见的蜜罐系统的介绍&#xff1a; HFish开源蜜罐系统 特点&#xff1a; 多功能&#xff1a;支…

数据中心大型AI模型网络需求

数据中心大型AI模型网络需求 随着Transformer的崛起和2023年ChatGPT的大规模应用&#xff0c;业界逐渐形成共识&#xff1a;遵循一定的规模效应原则&#xff0c;增加模型参数量能够显著提升模型性能。特别是在参数数量级跃升至数百亿乃至更高时&#xff0c;大型AI模型在语言理…

WPF/C#:理解与实现WPF中的MVVM模式

MVVM模式的介绍 MVVM&#xff08;Model-View-ViewModel&#xff09;是一种设计模式&#xff0c;特别适用于WPF&#xff08;Windows Presentation Foundation&#xff09;等XAML-based的应用程序开发。MVVM模式主要包含三个部分&#xff1a;Model&#xff08;模型&#xff09;、…

02 Prometheus入门安装教程

02 Prometheus入门安装教程 大家好&#xff0c;我是秋意零。今天分享一篇入门级Prometheus安装教程。 环境准备 三台Linux虚拟机&#xff08;一台也可以&#xff09; 准备Prometheus、相关组件安装包 Prometheus官网下载安装包比较慢&#xff0c;如果没有魔法。可关注公众号…