循环队列
1|0一、循环队列
环形队列,有两个指针:头指针和尾指针。在队尾写入,移动尾指针;从队列头部读取,移动头指针。环形队列,其特殊性在于"环形", 内存空间可以不断重复使用,无需频繁分配和释放内存。通常,我们用一个固定长度的数组来实现循环队列。
示意图:
- 1.初始化循环队列
初始化:创建一个空的顺序队列,需要设定队首指针和队尾指针都指向同一个位置,一般初始都设置为0,即队列为空。head = tail =0;
-
2.判空和判满
-
牺牲一个元素空间,来区别队空或队满。
判断是否为空:通过检查队首指针和队尾指针是否相等来判断队列是否为空,head==tail
队列为空。
判断是否为满:当队尾指针指向数组的最后一个位置时,下一个要插入的位置就是队头指针,即(tail + 1) % SIZE == head
时,队满。
- 3.入队
元素入队:也被称为插入操作,是将一个新元素添加到队列尾部的操作。
入队时,tail指针变化:tail= (tail+1)%SIZE;
,queue[tail] = val;
。
- 4.出队
元素出队:也被称为删除操作,是将队列头部的元素移除的操作。
出队时,head指针变化:head=( head +1)%SIZE
,temp = queue[head];
。
- 5.取队头
头元素就是队列中的第一个元素,可以通过返回队首指针的值来获取。
- 6.取队尾
队列中的最后一个元素,可以通过返回队尾指针的值来获取。
- 7.获取循环队列长度
(tial - head + SIZE)%SIZE
__EOF__

本文作者:xiaohu
本文链接:https://www.cnblogs.com/xiaohuzaixue/p/17879061.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/xiaohuzaixue/p/17879061.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界