数据结构--队列

  1. 定义

队列是先进先出(FIFO)的线性数据结构,元素从队尾入队,队头出队。

  1. 核心操作

• 入队(enqueue):在队尾添加元素,若队列满则抛出异常或进行扩容。

• 出队(dequeue):删除并返回队头元素,若队列为空则抛出异常。

• 判空(isEmpty):判断队列中是否存在元素。

• 查看队头(peek):返回队头元素但不删除。

• 查看大小(size):获取队列中元素的个数。

  1. 常见实现方式

  2. 数组实现(顺序队列)

◦ 用数组存储元素,维护队头指针front和队尾指针rear。

◦ 存在假溢出问题,可通过循环队列解决。

◦ 循环队列判满:(rear + 1) % capacity == front;判空:front == rear。

  1. 链表实现(链式队列)

◦ 用单链表存储元素,队头指向链表头节点,队尾指向链表尾节点。

◦ 入队、出队操作时间复杂度均为O(1),无需考虑扩容。

  1. 典型应用

• 任务排队(如打印机任务队列、线程池任务队列)

• 广度优先搜索(BFS)

• 消息队列系统

相关推荐
xys_67810 分钟前
深挖数据结构:树和二叉树(上)
数据结构·算法
BeiGuTing_code13 分钟前
Java动态数组(一)
java·数据结构·windows
NetX行者2 小时前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust
热爱生活的五柒3 小时前
zotero能导入已经下载好的pdf文件嘛,并且点击条目时,能直接看到下载的pdf文件嘛,我还希望能在里面做笔记
笔记·pdf
Code_Solitude4 小时前
传智杯备赛代码整理(前4题)
数据结构·算法
海绵宝宝转agent4 小时前
2026-10-19学习笔记
笔记·学习
金色光环4 小时前
【概率论详细笔记】泊松分布是怎么来的?应该怎么用?
笔记·概率论
Jasmine_llq4 小时前
《P8816 [CSP-J 2022] 上升点列》
数据结构·算法·贪心·排序·二维动态规划 dp·类背包状态转移
又見山4 小时前
双向链接的本质:链接不是功能,是思考留下的痕迹
笔记·obsidian
云水初5 小时前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag