1. 队列简介

<aside> 🪬

队列(Queue):一种线性表数据结构,是一种只允许在表的一端进行插入操作,而在表的另一端进行删除操作的线性表。

</aside>

我们把队列中允许插入的一端称为 「队尾(rear)」;把允许删除的另一端称为 「队头(front)」。当表中没有任何数据元素时,称之为 「空队」

队列有两种基本操作:「插入操作」 和 「删除操作」

image.png

简单来说,队列是一种 「先进先出(First In First Out)」 的线性表,简称为 「FIFO 结构」

我们可以从两个方面来解释一下队列的定义:

队列首先是一个线性表,队列中元素具有前驱后继的线性关系。队列中元素按照 a1,a2,...,an 的次序依次入队。队头元素为 a1,队尾元素为 an

根据队列的定义,最先进入队列的元素在队头,最后进入队列的元素在队尾。每次从队列中删除的总是队头元素,即最先进入队列的元素。也就是说,元素进入队列或者退出队列是按照「先进先出(First In First Out)」的原则进行的。

2. 队列的顺序存储与链式存储

和线性表类似,队列有两种存储表示方法:「顺序存储的队列」 和 「链式存储的队列」