队列

特点:先进先出  有序

实现:数组(顺序存储)或链表(链式存储)  链表更优

 

 队列的基本实现图:

   第一个  没有存数据时头和尾的默认为 -1  front 头  rear 尾

  第二个   添加数据时 rear 尾加一  

  第三个   去掉数据时  front 头数据加一 向上移动

 

队列是怎么满足先进先出的?

使用指针 存入第一个数据时 rear +1  front 不变  

             当取数据时 front从 - 1,开始取数据  逐渐加一  指针向上移动 ,取出后,数据不能再次取,因为指针向上。

注意:front +1 代表头数据。

循环队列
/* 实现思路:front 头指针 从第一个元素开始开始 front = 0
rear 尾指针-也从 rear = 0开始 指向最后一个数据的下一个位置(默认有一个空间是空的)
队列满时:(rear+1% maxSize == front
队列为空时 : rear == front front 在获取前 进行加一 指到下一位 当front == rear时 指向空的空间)
获取有效数据: (rear+ maxSize -front% maxSize) 有效数据个数*/
在添加队列时 超出队列 return 打断 否则继续向下执行 rear指针指向到队列的第一个 导致判断为空 出现异常。

posted @   niao66  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示