零、前言
「 数据结构 」 和 「 算法 」 是密不可分的,两者往往是「 相辅相成 」的存在,所以,在学习 「 数据结构 」 的过程中,不免会遇到各种「 算法 」。
到底是先学 数据结构 ,还是先学 算法,我认为不必纠结这个问题,一定是一起学的。
数据结构 常用的操作一般为:「 增 」「 删 」「 改 」「 查 」。基本上所有的数据结构都是围绕这几个操作进行展开的。
那么这篇文章,作者将用 「 九张动图 」 来阐述一种 「 先进先出 」 的数据结构
「 队列 」
![]()
队列可以用 顺序表 实现,也可以用 链表 实现,浓缩为以下三张图:
队列操作三部曲
![]()
队列的链表实现
![]()
队列的顺序表实现
看不懂没有关系,我会把它拆开来一个一个讲,首先来看一下今天要学习的内容目录。
一、概念
1、队列的定义
队列 是仅限在 一端 进行 插入,另一端 进行 删除 的 线性表。
队列 又被称为 先进先出 (First In First Out) 的线性表,简称 FIFO 。

2、队首
允许进行元素删除的一端称为 队首。如下图所示:

3、队尾
允许进行元素插入的一端称为 队尾。如下图所示:

本文通过九张动图详细解析了数据结构中的队列,包括队列的定义、接口、顺序表和链表两种实现方式,以及它们的优缺点。队列是一种先进先出(FIFO)的数据结构,支持数据入队、出队、清空等操作。文章还介绍了队列在滑动窗口和广度优先搜索等场景的应用,并探讨了单调队列的进阶概念。

订阅专栏 解锁全文
2万+






