首页 > 其他分享 >循环队列

循环队列

时间:2023-11-15 21:27:43浏览次数:37  
标签:队列 元素 插入 length 循环 front rear

一、普通队列(顺序存储结构)

说明:rear指向队尾元素,front指向对头元素的下一个元素。

i.判断元素个数:number=rear-front;
ii.判断队空:rear==front
iii.插入元素:rear++;
iiii.删除元素:front++;
iiiii.队满操作:rear==length-1;

2.2 遇到假溢出问题

如严蔚敏老师数据结构书中,写道,每次插入与删除操作会使其头尾指针向后移动,由于使用的是顺序存储结构,空间是有限的,就会导致数组越界问题——在队未满时,却不能插入操作。

二. 循环队列

如何解决呢?

通过取模操作使原本越界访问问题拨乱反正。
i.判断元素个数:
ii.插入元素:rear=(rear+1)%length;
iii.删除元素:front=(front+1)%length;
iiii.元素个数:(rear-front+length)%length;
iiiii.判断队空:rear==front;

此时就会出现另外一个问题,如插入操作比删除操作更快时,队尾就会重现回到队头,那就和判空条件重合了,因此人为规定,循环队列中只存储length-1结点。

iiiiii. 队满:(rear+1)%length==front;

标签:队列,元素,插入,length,循环,front,rear
From: https://www.cnblogs.com/cony1/p/17834802.html

相关文章

  • python if判断和循环判断
    if判断在写代码的时候,往往需要根据某些条件进行判断,并根据判断结果执行不同的分支代码。#单个条件a=1ifa==1:print(11111)ifa==2:print(2222)else:print(333)#多个条件,加多少个都可以ifa==1:print(11111)elifa==2:print(22222)else:pri......
  • Java流程控制06:While循环详解
     一、while循环publicclassWhileDemo01{publicstaticvoidmain(String[]args){//输出1~100,并且求和inti=1;intsum=0;while(i!=101){System.out.println(i);sum=sum+i;i++......
  • Java中for循环每次都通过list.size、str.length、length()获取数组或者字符串的长度是
    最近看到有同事在使用for循环的时候首先会将数组或者字符串的长度赋值给一个变量;在网上查了一下说是这样可以节约资源的消耗,真实的情况又是如何?让我们看下他们的源码来分析。1.将数组的长度赋值给变量lenList<Integer>list=newArrayList<Integer>();list.add(......
  • 【ffmpeg】使用 FFmpeg 在一个视频文件上添加一个循环的 GIF 水印
    这段代码使用FFmpeg在一个视频文件(1.mp4)上添加一个循环的GIF水印(3.gif),并将输出保存为另一个视频文件(output.mp4),(如果在使用时遇到问题,可能需要调整一些参数,例如帧率、水印的位置或大小,以满足特定的需求)。 【ffmpeg命令】ffmpeg-i1.mp4-ignore_loop0-i3.g......
  • 【洛谷 P1089】[NOIP2004 提高组] 津津的储蓄计划 题解(循环)
    [NOIP2004提高组]津津的储蓄计划题目描述津津的零花钱一直都是自己管理。每个月的月初妈妈给津津元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上还给津津。因此津津制定了一......
  • 源码级JVS低代码功能新增:动态配置、逻辑多级循环嵌套等等
    低代码更新功能新增:1.下拉组件选项新增动态配置;选项的内容可以根据特定的条件或数据源进行动态变化的功能,通过动态配置,用户可以灵活地设置下拉组件的选项内容,例如从数据库或其他数据源中获取选项数据,或者根据用户的操作动态改变选项。2.新增应用操作日志详情;操作日志是用来记录轻......
  • shell编程-循环结构
    shell循环-for语句foriin{取值范围}#for是关键字i是变量名in是关键字do#循环体的开始循环体done#循环体的结束实战1:[root@linux-serverscript]#vimfor.sh#!/usr/bin/envbash##Author:#Date:2019/**/**fo......
  • 机器学习——深度循环神经网络
    到目前为止,我们只讨论了具有一个单向隐藏层的循环神经网络。其中,隐变量和观测值与具体的函数形式的交互方式是相当随意的。只要交互类型建模具有足够的灵活性,这就不是一个大问题。然而,对一个单层来说,这可能具有相当的挑战性。之前在线性模型中,我们通过添加更多的层来解决这个......
  • 代码随想训练营第三十五天打卡(Python)| 860.柠檬水找零、406.根据身高重建队列、452. 用
    860.柠檬水找零classSolution:deflemonadeChange(self,bills:List[int])->bool:five,ten,twenty=0,0,0forbillinbills:ifbill==5:five+=1elifbill==10:iffive......
  • 浏览器事件循环Event Loop
    引言:事件循环不是浏览器独有的,从字面上看,“循环”可以简单地认为就是重复,比如for循环,就是重复地执行for循环体中的语句,所以事件循环,可以理解为重复地处理事件,那么下一个问题是,处理的是什么事件,事件的相关信息从哪里获取。因为我没有用nodejs做过什么项目,所以这里我暂且只关注浏......