AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# 队列 > 先进先出 First In First Out - 顺序队列 - 链队 ### 单队列 - 顺序队列(数组) - 链式队列(链表) 顺序队列或存在「假溢出」问题,明明数组还有空间,却无法入队。 > 为了避免当只有一个元素的时候,队头和队尾重合使处理变得麻烦,所以引入两个指针,front 指针指向对头元素,rear 指针指向队列最后一个元素的下一个位置,这样当 front 等于 rear 时,此队列不是还剩一个元素,而是空队列。——From 《大话数据结构》 ### 循环队列 > 通过模运算方式 Q.rear = (Q.rear + 1) % Q.maxsize 建立循环队列,解决「假溢出」问题和越界问题 顺序队列中,front 等于 rear 时,队列为空。但是在循环队列中,有可能是队列满了。 解决方式: - 增加一个标识flag变量,标识队列是否满了 - ( rear + 1) % Q.maxsize = front ,如果相等,说明队列已满 ### 常用场景 当我们需要按照一定顺序处理数据时可以考虑使用队列。 - 阻塞队列 - 线程池中的请求/任务队列 - Linux内核进程队列 - 播放列表 - 消息队列 - 等等...