【数据结构与算法】循环队列

news2024/11/15 11:44:02

循环队列

  • 一.循环队列的引入
  • 二.循环队列的原理
  • 三.循环队列判断是否为满或空
    • 1.是否为空
    • 2.是否为满
  • 四.循环队列入队
  • 五.循环队列出队
  • 六.循环队列的遍历
  • 七.循环队列获取长度
  • 八.总结

一.循环队列的引入

还记得我们顺序队列的删除元素嘛,我们有两种方式,一种是将数组要删除元素后面的元素往前面移动.
还有一种是直接将front向后面指,达到删除的效果.
这两种方式有有其弊端,第一种如果数据巨大,需要频繁的移动.
第二种则是对数组空间的浪费,删除越多,越来越多的空间浪费.
那么我们采用循环队列就可以解决这些问题.
在这里插入图片描述

二.循环队列的原理

正常我们的尾巴指向末尾,现在我们想办法,将rear指向头位置.
在这里插入图片描述
当然数组不是链表,只需要我们就指向一下进行了,我们需要能够循环的指向,当不停的插入的时候,我们不断的循环指向.

三.循环队列判断是否为满或空

1.是否为空

还是跟原来一样,如果front=rear就为空.
在这里插入图片描述

2.是否为满

在这里插入图片描述
这个就是循环链表的特殊之处了,为了能够循环指向,我们用到了取模运算,我这里MAXSIZE这个宏是5,那么我的rear可以指向0~4一直循环往返.
为什么要用rear加1,这个问题也很关键,为了更能很好的判断是否为满,我们空了一个数组元素,为什么呢?
首先,rear是指向最后一个元素的下一个元素,如果我们插满的话,因为是循环的,那么rear就会等于front,这个与我们判断是否为空就会冲突,所以我们用空数组指向的rear的下一个来判断是否与front相等来判断.

四.循环队列入队

在这里插入图片描述

五.循环队列出队

在这里插入图片描述

六.循环队列的遍历

在这里插入图片描述

七.循环队列获取长度

在这里插入图片描述

八.总结

循环队列是一种基于数组实现的队列数据结构,它的特点是可以通过循环利用数组的空间来实现高效的出队和入队操作。循环队列中通常会用到两个指针,分别指向队首和队尾。当队满时,队尾指针会绕回到数组的开头;当队空时,队首和队尾指针相等。循环队列在实际应用中常用于实现缓冲区等场景,可以提高空间利用率和操作效率。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统数据库

Mysql数据库安装完成后,自带了一下四个数据库,具体作用如下: 常用工具:

<数据集>工程机械识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:6338张 标注数量(xml文件个数):6338 标注数量(txt文件个数):6338 标注类别数:7 标注类别名称:[Excavator, Loader, Dumb_truck, Mobile_crane, Roller, Bull_dozer, …

功能实现——采用 Hutool 工具发送邮件

目录 1.需求分析2.准备工作:开通邮箱的 SMTP 服务3.项目环境搭建4.代码实现mail.htmlEmployee.javaMailController.javaMailService.javaMailServiceImpl.java 5.测试 1.需求分析 采用 Hutool 工具来实现发送邮件的功能,具体来说:为新员工发…

准备笔试第21天,牛客.十字爆破牛客.比木名居的桃子牛客.chinka蜜柑01背包

目录 牛客.十字爆破 牛客.比木名居的桃子 牛客.chinka蜜柑 01背包 牛客.十字爆破 就是上下左右加上,但是会遇到的问题就是,这块并不容易去获取得分,如果可能要四重循环,遍历这一行,这一列,然后把他们存在…

解决Ubuntu报错:sudo: /etc/sudoers is world writable

1. 情况描述 /etc/sudoer这个文件的权限由440变成了777,由于账户下有多个子账户,导致子账户的sudo权限不能使用。报错如下: 2.解决办法 执行下面的语句就ok了 pkexec chmod 0440 /etc/sudoers 参考链接 3.总结 不要随便改系统文件的权…

模型组合、注意力机制在单步、多步、单变量、多变量预测中的应用

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 VMD CEEMDAN 二次分解,Transformer-BiGRU预测模型-CSDN博客 独家原创 | 基于TCN-SENet BiGRU-GlobalAttention并行预测模型-CSDN博客 独家原创 | B…

a newer version of WinPcap,ensp安装时候winpcap软件报错

ensp安装时候winpcap软件报错 a newer version of WinPcap… 找到C盘路径下的文件Packet.dll C:\Windows\SysWOW64 修改为:Packet.dll.1(后缀名随便改一下) 再次安装,成功

在线PS快速抠出透明背景(纯色背景+复杂背景抠图操作)

电脑硬盘快爆了,没必要安装个PS了,网上找了几个在线的PS网站,还别说,一般的PS操作都可以满足 我们使用PS通常用的较多的是抠背景操作吧,接下来演示几个在在线PS网站上进行抠背景操作 一、在线PS网站 Photopea&#x…

程序员转型人工智能:从“996”困境到拥抱光明未来

前言 在这个充满挑战与机遇的时代,各行各业的辛酸各有不同,而程序员群体无疑有着自己的独特体验。他们学习着普通人难以理解的计算机语言,工作在“996”的高压环境中,还未及中年就可能面临“聪明绝顶”的尴尬。面对行业的快速更新…

树与二叉树【中】

目录 二. 二叉树2.1 二叉树的性质2.2 二叉树的存储结构2.2.1 二叉树的顺序存储(只适合存储完全二叉树)2.2.2 二叉树的链式存储 2.3 二叉树的遍历2.3.1 先序遍历2.3.2 中序遍历2.3.3 后序遍历2.3.4 二叉树的层序遍历2.3.5 由遍历序列构造二叉树2.3.5.1 前…

【HarmonyOS】HarmonyOS NEXT学习日记:八、组件通信

【HarmonyOS】HarmonyOS NEXT学习日记:八、组件通信 通过前面的学习我们基本上掌握了如何封装组件,但是实际使用过程中组件之间的状态需要互相之间关联通讯,涉及到父子组件,后代组件之间的相互通信。 State装饰器:组…

Loader QML Type

文章目录 Loader QML Type描述属性(Properties)active : boolasynchronous : bool(异步)item : objectprogress : realsource : urlsourceComponent : Componentstatus : enumeration 信号(Signal Documentation&#…

四,搭建环境:表述层

四,搭建环境:表述层 文章目录 四,搭建环境:表述层设定 Web 工程web.xml 的配置编写配置 ContextLoaderListener配置 DispatcherServlet配置 CharacterEncodingFilter配置 HiddenHttpMethodFilter 配置 Spring MVC配置视图解析相关…

【JKI SMO】框架讲解(九)

本节内容将演示如何向SMO框架添加启动画面。 1.打开LabVIEW新建一个空白项目,并保存。 2.找到工具,打开SMO Editor。 3.新建一个SMO,选择SMO.UI.Splash。 4. 打开LabVIEW项目,可以看到项目里多了一个SystemSplash类。 打开Process…

c++11-lambda表达式,包装器function,bind

lambda表达式 lambda表达式在很多语言都是有的,c当然是有的,但是像C语言就没有这个。和很多语言相同c的lambda表达式都是为了简化代码,当我们需要传函数的时候我们就可以用lambda表达式写一个匿名函数。 书写格式: [capture-li…

【Log4j2】代码执行漏洞复现!

执行以下命令 启动命令 systemctl start dockercd vulhub/log4j/CVE-2021-44228docker-compose up -d # 访问网址 http://192.168.3.42:xxxx/solr/#/ 启动靶场环境并在浏览器访问!!! 先在自己搭建的DNSLOG平台上获取一个域名来监控我们注入的效果. 可以发现 /solr…

人工智能:所有144本SCI期刊都在这里(20本Top,4本On Hold)

本周投稿推荐 SCI&EI • 4区“水刊”,纯正刊(来稿即录) • CCF-B类,IEEE一区-Top(3天初审) EI • 各领域沾边均可(2天录用) 知网(CNKI)、谷歌学术 …

CS61C | lecture5

CS61C | lecture5 浮点数的表示 用一个小数点作为边界分隔整数部分和小数部分。 10.101 0 2 1 2 1 1 2 − 1 1 2 − 3 2.62 5 10 10.1010_{2}1\times2^11\times2^{-1}1\times2^{-3}2.625_{10} 10.10102​12112−112−32.62510​ Scientific Notation(Binary) 单精度…

.JPG图片,各种压缩率下的文件尺寸

测试结果 不改变图片幅面的情况下,cv2 jpg压缩算法: 默认quality是9550时,相应的图片尺寸是95的1/3 可用。25时,图片尺寸是1/4,仍可用。 2024/07/31 16:31 85,305 out_10.jpg 2024/07/31 16:31 …

不要怕,手把手带你做好小程序关键词优化

要想让小程序在众多同类中脱颖而出,吸引更多的用户,就必须进行有效的关键词优化。优化小程序关键词是提升小程序搜索排名和吸引目标用户的重要手段。以下是一些优化小程序关键词的具体步骤和策略: 一、关键词研究与选择 1.了解用户搜索习惯…