数据结构--队列

  1. 定义

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

  1. 核心操作

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

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

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

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

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

  1. 常见实现方式

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

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

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

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

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

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

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

  1. 典型应用

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

• 广度优先搜索(BFS)

• 消息队列系统

相关推荐
饮水桶_T14 小时前
JAVA IO流笔记
开发语言·数据结构·算法
柳鲲鹏14 小时前
内斗学概论:43、平级内斗
笔记
星恒随风17 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Z21-X18 小时前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
wo_jack19 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
zaizai10071 天前
算法(左程云)1
数据结构
晓梦林1 天前
BUUCTF-菜刀流量-MISC-学习笔记
笔记·学习
charliejohn1 天前
计算机考研 408 数据结构 图论-关键路径
数据结构·图论
David猪大卫2 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习