计算机教程-第6章队列.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载 第6章 队 列 像堆栈一样,队列也是一种特殊的线性表。队列的插入和删除操作分别在线性表的两端进 行,因此,队列是一个先进先出( first-in-first-out, FIFO )的线性表。尽管可以很容易地从线 性表类L i n e a r L i s t (见程序3 - 1 )和链表类C h a i n (见程序3 - 8 )中派生出队列类,但在本章中并 没有这样做。出于对执行效率的考虑,我们把队列设计成一个基类,分别采用了公式化描述和 链表描述。 在本章的应用部分,给出了四个使用队列的应用。第一个应用是关于 5 . 5 . 3节所介绍的火车 车厢重排问题。在本章中对这个问题做了修改,要求缓冲铁轨按 F I F O方式而不是L I F O方式工 作;第二个应用是关于寻找两个给定点之间最短路径的问题,这是一个经典的问题。可以把这 个应用看成是5 . 5 . 6节迷宫问题的一种变化,即寻找从迷宫入口到迷宫出口的最短路径。 5 . 5 . 6节 中的代码并不能保证得到一条最短的路径,它只能保证如果存在一条从入口到出口的路径,则 一定能找到这样一条路径(没有限定长度);第三个应用选自计算机视觉领域,主要用于识别 图像中的图元;最后一个应用是一个工厂仿真程序。工厂内有若干台机器,每台机器能够执行 一道不同的工序。每一项任务都由一系列工序组成。我们给出了一个仿真程序,它能够仿真工 厂中的任务流。该程序能够确定每项任务所花费的总的等待时间以及每台机器所产生的总的等 待时间,可以根据这些信息来改进工厂的设计。 为了获得较高的执行效率,本章中每个应用都采用了队列数据结构。在后续章节中还会介 绍其他几种队列应用。 6.1 抽象数据类型 定义 [ 队列] 队列(q u e n e )是一个线性表,其插入和删除操作分别在表的不同端进行。添加 新元素的那一端被称为队尾( r e a r ) ,而删除元素的那一端被成为队首( f r o n t ) 。 一个三元素的队列如图 6-1a 所示,从中删除第一个元素 A 之后将得到图 6-1b 所示的队列。 如果要向图6-1b 的队列中添加一个元素D ,必须把它放在元素C 的后面。添加D 以后所得到的 结果如图6-1c 所示。 a) b) c) 图6-1 队列举例 所以,队列是一个先进先出( F I F O )的线性表,而堆栈是一个先进后出( L I F O )的线性 表。队列的抽象数据类型描述见ADT 6-1 。 1 9 0 第二部分 数 据 结 构 下载 ADT6-1 队列的抽象数据类型描述 抽象数据类型 Queue { 实例 有序线性表,一端称为 f r o n t ,另一端称为r e a r ; 操作 C reate (): 创建一个空的队列; IsEmpty (): 如果队列为空,则返回t r u e ,否则返回f a l s e ; IsFull ( ) :如果队列满,则返回t r u e ;否则返回f a l s e ; First (): 返回队列的第一个元素; Last ( ) :返回队列的最后一个元素; Add (x): 向队列中添加元素 x ; Delete (x): 删除队首元素,并送入x ; } 6.2 公式化描述 假定采用公式(6 - 1 )来描述一个队列。 location (i ) = i- 1 (6 - 1 ) 这个公式在公式化描述的堆栈中工作得很好。如果使用公式( 6 - 1 )把数组q u e u e [ M a x S i z e ]描述 成一个队列,那么第一个元素为 q u e u e [ 0 ] ,第二个元素为q u e u e [ 1

您可能关注的文档

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档