赞
踩
与栈的情形相同,任何一种实现表的方法都可以用于实现队列。用指针实现队列得到的实际上是一个单链表。由于入队在队尾进行,所以用一个指针来指示队尾可以使入队操作不必从头到尾检查整个表,从而提高运算的效率。另外,指向队头的指针对于Front和Dequeue运算也是必要的。为了便于表示空队列,我们仍使用一个表头单元,将队头指针指向表头单元。当队头和队尾指针都指向表头单元时,表示队列为一个空队列。
用指针实现队列时,单元类型及队列类型可说明如下:
type TPosition=^NodeType; NodeType=record Element:ElementType; next:TPosition; end; QueueType=record front,rear:TPosition; end; |
其中front为队头指针,rear为队尾指针。图8是用指针表示队列的示意图。
图8 用指针实现队列
下面我们来讨论队列的5种基本运算。
函数 Front(Q) 功能
实现
说明
复杂性
|
函数 Enqueue(x,Q) 功能
实现
说明
复杂性
|
函数 Dequeue(Q) 功能
实现
说明
复杂性
|
函数 Empty(Q) 功能
实现
说明
复杂性
|
函数 MakeNull(Q) 功能
实现
说明
复杂性
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。