队列

来源:互联网 发布:ubuntu for arm 编辑:程序博客网 时间:2024/06/07 00:28

和栈相反,队列是一种先进先出的线性表,允许在表的一端进行插入,而在另一端删除元素。

//队列的抽象数据类型定义ADT Queue{   数据对象:D={ai|ai属于ElemSet,i=1,2,...,n,n>=0}   数据关系:R1={<a(i-1),ai>|a(i-1),ai属于D,i=2,...,n}            约定其中ai为队列头,an端为队列尾。   基本操作:      InitQueue(&Q)             操作结果:构造一个空队列Q      DestroyQueue(&Q)             初始条件:队列Q已存在。             操作结果:队列Q被销毁,不再存在。      ClearQueue(&Q)             初始条件:队列Q已存在。             操作结果:将Q清为空队列      QueueEmpty(Q)             初始条件:队列Q已存在。             操作结果:ruoQ为空队列,则返回TRUE,否则FALSE      QueueLength(Q)             初始条件:队列Q已存在。             操作结果:返回Q的元素个数,记队列的长度      GetHead(Q,&e)             初始条件:队列Q为非kong'dui'li。             操作结果:用e返回Q的队头元素      EnQueue(&Q,e)             初始条件:队列Q已存在。             操作结果:插入元素e为Q的新的队尾元素      DeQueue(&Q,&e)              初始条件:队列Q为空队列              操作结果:删除Q的队头元素,并用e返回其值      QueueTraverse(Q,visit())                初始条件:队列Q已存在且非空               操作结果:从队头到队尾,依次对Q的每个数据元素调用函数visit(),一旦visit()失败,则操作失败。       }ADT Queue             
0 0
原创粉丝点击