数据结构--队列

  1. 定义

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

  1. 核心操作

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

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

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

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

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

  1. 常见实现方式

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

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

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

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

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

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

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

  1. 典型应用

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

• 广度优先搜索(BFS)

• 消息队列系统

相关推荐
xiaoxue..2 小时前
二叉搜索树 BST 三板斧:查、插、删的底层逻辑
javascript·数据结构·算法·面试
colus_SEU2 小时前
【计算机网络笔记】第四章 网络层的数据平面
笔记·计算机网络
程序员小白条2 小时前
提前实习的好处有哪些?有坏处吗?
java·开发语言·数据结构·数据库·链表
蒙奇D索大2 小时前
【数据结构】排序算法精讲 | 快速排序全解:分治思想、核心步骤与示例演示
数据结构·笔记·学习·考研·算法·排序算法·改行学it
七夜zippoe2 小时前
Python高级数据结构深度解析:从collections模块到内存优化实战
开发语言·数据结构·python·collections·内存视图
iconball2 小时前
个人用云计算学习笔记 --29 华为云网络云服务
运维·笔记·学习·华为云·云计算
YJlio3 小时前
Contig 学习笔记(13.4):单文件碎片整理工具的原理与基本用法
笔记·学习·stable diffusion
sin_hielo10 小时前
leetcode 2483
数据结构·算法·leetcode
大数据追光猿11 小时前
【大数据Doris】生产环境,Doris主键模型全表7000万数据更新写入为什么那么慢?
大数据·经验分享·笔记·性能优化·doris