一.定义
- 1.队列(Queue)也是一种受限的线性表,它只允许在表的一段进行元素插入,在另一端进行元素删除。允许插入的一端称为对尾(rear),允许删除的一端称为队头(front)。
- 2.通常把元素的插入称为入队,元素的删除称为出队。
- 3.队列又称为先进先出(FIFO)表。
二.基本运算
- 1.创建队列:initQueue(Q)。
- 2.空队判断:queueEmpty(Q),为空返回true,否则返回false。
- 3.入队:enQueue(Q, x),若队列Q不满,则将数据x插入到Q的队尾。
- 4.出队:deQueue(Q),若队列Q不空,则删除队头元素,并返回该元素。
- 5.取队头:getFront(Q),若队列不空,则返回队头元素。
三.存储方式
-
1.顺序循环队列:
1.1:队列的顺序存储结构称为顺序队列。 1.2:设计两个指针front和rear分别指示队头和队尾元素在表中的位置。他们的初始值都设置为0。 1.3:为充分利用数组空间,克服上溢,将数组空间想象为一个环状空间,称这种环状数组标识的队列称为环状队列。 1.4:环状队列,如果尾指针追赶上头指针,则队满;头指针追赶上尾指针,则队空。
-
2.链队列:
2.1:队列的链式存储结构称为链队列。 2.2:一个链队列由一个头指针和一个尾指针唯一确定。