1 队列的基本概念

队列(Queue):也是运算受限的线性表。

是一种先进先出(First In First Out ,简称FIFO)的线性表。

只允许在表的一端进行插入,而在另一端进行删除。

队首(front) 允许进行删除的一端称为队首。

队尾(rear)允许进行插入的一端称为队尾。   

例如:排队购物。操作系统中的作业排队。先进入队列的成员总是先离开队列。  

队列中没有元素时称为空队列。在空队列中依次加入元素a1, a2, …, an之后,a1是队首元素,

an是队尾元素。显然退出队列的次序也只能是a1, a2, …, an ,即队列的修改是依先进先出的原则进行的,

如图3-5所示。

 

2 队列的抽象数据类型定义

ADT Queue{ 数据对象:D ={ ai|ai∈ElemSet, i=1, 2, …, n, n >= 0 }

数据关系:R = {<ai-1, ai> | ai-1, ai∈D, i=2,3,…,n } 约定a1端为队首,an端为队尾。

基本操作:

Create():创建一个空队列;

EmptyQue():若队列为空,则返回true ,否则返回flase ; ⋯⋯

InsertQue(x) :向队尾插入元素x;

DeleteQue(x) :删除队首元素x;

}

ADT Queue