目录
队列是只能在在一端进行插入操作,在另一端进行删除操作的线性表。
允许插入的一端称为队尾,允许删除的一端称为队头。
特点:先进先出。就像我们日常排队,先排队的人先到达。
队列(Queue)的抽象数据结构类型
//基本操作:
InitQueue (&Q) //构造一个空队列Q。
//以下前提条件为队列已经存在
DestroyQueue (&Q) //队列Q被销毁, 不再存在。
ClearQueue (&Q) //将Q清为空队列。
QueueEmpty (Q) //若Q为空队列,则返回true, 否则返回false。
QueueLength(Q) //返回Q的元素个数,即队列的长度。
EnQueue (&Q, e) //插入元素e为Q的新的队尾元素。
//以下条件为队列已存在且非空
GetHead(Q} //返回Q的队头元素。
DeQueue(&Q, &e) //删除Q的队头元素,并用e 返回其值。
QueueTraverse(Q) //从队头到队尾,依次对Q的每个数据元素访问
循环队列
计算队列长度的公式为:(rear - front + maxsize) % maxsize 【maxsize为队列的最大尺寸】
队空的条件:Q->front == Q->rear
队满的条件:(rear + 1) % maxsize == front
<