凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

抽象数据类型队列的定义

已有 846 次阅读| 2016-3-25 17:02 |个人分类:C语言数据结构

和栈相反,队列是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开。在队列中,允许插入的一端叫做队尾,允许删除的一端则称为队头。假设队列为q=a1,a2,…,an),那么,a1就是队头元素,an则是队尾元素。队列中的元素是按照a1,a2,…,an的顺序进入的,退出队列额只能按照这个次序依次退出,也就是说,只有在a1,a2,…,an-1都离开队列之后,an才能退出队列。

队列在程序设计中也经常出现。一个最典型的例子就是操作系统中的作业排队。在允许多道程序运行的计算机系统中,同时有几个作业运行。如果运行的结果都需要通过通道输出,那就要按请求输出的先后次序排队。每当通道传输完毕可以接受新的输出任务时,队头的作业先从队列中退出作输出操作。凡是申请输出的作业都是从队尾进入队列。队列的操作与栈的操作类似,也有8个,不同的是删除时在表的头部进行。

下面给出队列的抽象数据类型定义:

InitQueue(&Q)

操作结果:构造一个空队列Q

DestroyQueue(&Q)

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

操作结果:队列Q被撤销,不再存在。

ClearQueue(&Q)

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

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

QueueEmpty(Q)

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

操作结果:若Q为空队列,则返回TURE,否则FALSE

QueueLength(Q)

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

操作结果:返回Q的元素格式,即队列的长度。

GetHead(Q,&e)

初始条件:Q为非空队列。

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

EnQueue(&Q,e)

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

操作结果:插入元素eQ的新的队尾元素。

DeQueue(&Q,&e)

初始条件:Q为非空队列。

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

QueueTraverse(Q,visit())

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

操作结果:从队头到队尾,一次对Q的每个数据元素调用函数visit().一旦visit()失败,则操作失败。

}ADT Queue

  凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com

    


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 16:34 , Processed in 0.015479 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部