数据结构(C语言实现)
上QQ阅读APP看书,第一时间看更新


3.4.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端为队列尾。

基本操作:

(1)InitQueue(&Q)

初始条件:队列Q不存在。

操作结果:建立一个空队列Q。

这就像日常生活中,火车站售票处新增加了一个售票窗口,这样就可以新增一队用

来排队买票。

(2)QueueEmpty(Q)

初始条件:队列Q已存在。

操作结果:若Q为空队列,返回1,否则返回0。

这就像售票员查看窗口前是否还有人排队买票。

(3)EnQueue(&Q,e)

初始条件:队列Q已存在。

操作结果:插入元素e到队列Q的队尾。

这就像排队买票时,新来买票的人要排在队列的最后。

(4)DeQueue(&Q,&e)

初始条件:队列Q已存在且为非空。

操作结果:删除Q的队头元素,并用e返回其值。

这就像排在队头的人买过票后离开队列。

(5)Gethead(Q,&e)

初始条件:队列Q已存在且为非空。

操作结果:用e返回Q的队头元素。

这就像询问排队买票的人是谁。

(6)ClearQueue(&Q)

初始条件:队列Q已存在。

操作结果:将队列Q清为空队列。

这就像排队买票的人全部买完了票,离开队列。

}ADT Queue