leiyahui

纸上得来终觉浅,绝知此事要躬行
队列

一 队列的定义

队列在本质上也是线性表,记左Q(a0,a1,.....an),队列只允许在标的两端进行插入和删除,允许插入的一段被称为队尾,允许删除的一段被称为队头,队列的插入操作被称为进队,队列的删除操作别成为出队。

二队列的抽象数据类型

ADT queue
{
    数据元素集:D = {ai|ai belongs datatype,i=0,1,....n-1,n>=0}
    数据关系集:R{<ai,ai+1>|ai,ai+1 belongs D,0<i<=n-2}
    约定a0为队头元素,an-1为队尾元素
    基本操作集:P
    QueueInit(&Q)
    操作结果:创建一个新的队列
    QueueDestroy(&Q)
    初始条件:队列Q已经存在
    操作结果:撤销队列Q
    ClearQueue(&Q)
    初始条件:队列Q已经存在
    操作结果:将Q清空队列
    QueueLength(Q)
    初始条件:队列Q已经存在
    操作结果:返回队列Q的长度
    EmtpyQueue(Q)
    初始条件:队列Q已经存在
    操作结果:若队列Q为空地列则返回true,否则返回false
    QueueFull(Q)
    初始条件:队列Q已经存在
    操作结果:若Q已满,返回true,否则返回false
    EnQueue(&Q,e)
    初始条件:队列Q已经存在,且未满
    操作结果:插入数据e,使之成为新的队尾元素
    DeQueue(&Q,e)
    操作条件:队列Q存在且不为空,
    操作结果:删除Q的队头元素,并返回值
    GetHeader(Q)
    操作条件:队列Q元素存在,且不为空
    操作结果:返回队头元素
    QueueTraveler(Q)
    初始条件:队列Q已经存在且不为空
    操作结果:从对头到队尾依次访问各个元素

}

 

posted on 2015-11-17 16:38  雷大叔  阅读(97)  评论(0)    收藏  举报