数据结构--队列

  1. 定义

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

  1. 核心操作

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

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

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

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

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

  1. 常见实现方式

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

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

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

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

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

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

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

  1. 典型应用

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

• 广度优先搜索(BFS)

• 消息队列系统

相关推荐
大邳草民15 分钟前
Python 爬虫:从 HTTP 请求到接口分析
笔记·爬虫·python
南湖渔歌18 分钟前
【成功实践版】workbuddy_把多张图片转成完整Markdown笔记
人工智能·笔记·workbuddy
我头发多我先学26 分钟前
C++ 红黑树:从规则到实现,手把手带你写一棵红黑树
数据结构·c++·算法
想成为优秀工程师的爸爸1 小时前
车载以太网之要火系列 - 第33篇:郭大侠学UDS(10服务)- 桃花岛内规矩多,模式切换要会说
网络·笔记·网络协议·信息与通信·车载以太网
智者知已应修善业1 小时前
【51单片机从奇数始再转偶数逐一点亮并循环】2023-9-8
c++·经验分享·笔记·算法·51单片机
sealaugh321 小时前
react native(学习笔记第三课) 英语打卡微应用(2)-从上传图片开始
笔记·学习·react native
努力努力再努力wz1 小时前
【MySQL进阶系列】拒绝冗余SQL:带你透彻理解视图的底层逻辑
android·c语言·数据结构·数据库·c++·sql·mysql
李李李勃谦2 小时前
鸿蒙PC打造电子书阅读器:支持 EPUB/PDF、书签同步、笔记管理
笔记·华为·pdf·harmonyos
U盘失踪了2 小时前
【笔记】Cookie 请求头的写法
笔记
Brilliantwxx2 小时前
【C++】认识vector(概念+题目OJ)
开发语言·c++·笔记·算法