队列
逻辑结构
先进先出(First In First Out,FIFO)的线性表。
只允许在线性表的一端插入,另一端删除。
是一种受限线性表。
物理结构
顺序存储结构
顺序队列
分配一块地址连续的空间,并附设两个指针,front指向队头,rear指向队尾+1。
操作复杂度
入队 、出队均为_O(1)_。
循环队列
当队首指针front = Maxsize - 1时,再出队一个元素,就自动到0(由除余实现)。
出队和进队时的指针操作都要除余。
为了区分队满还是队空,有三种处理方式:
- 牺牲一个单元使得队满变为(rear + 1) % Maxsize = front
- 增加一个成员size指示队列长度
- 增加一个成员tag指示:若tag=0时,删除后front = rear则为队空,若tag=1时,插入后front=rear则为队满
操作复杂度
入队、出队均为_O(1)_。
链式存储结构
链队列
实质上是一个带有队头指针和队尾指针的单链表。
特别适合数据元素变动比较大的情形,而且不存在队列满和溢出的问题。
操作复杂度
入队、出队均为_O(1)_。

浙公网安备 33010602011771号