数据结构____队列及其应用-朱全民.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文档。上传文档
查看更多
数据结构____队列及其应用-朱全民

队列及其应用 雅礼 朱全民 队列  队列是一种先进先出(FIFO)的线性表  队列的顺序存储结构和链式存储结构  队列必须构造成循环队列的形式,否则会出现“假 溢出” const maxsize=队列最大容量; m=maxsize-1; type cyclcquetp = record elem : array[0..m] of elemtp; rear, front : 0..m; end; 队列操作  举例 食堂排队 吸管里的饮料 作用:维持顺序 数组实现:元素queue[0..maxn-1],队首front,队尾rear  入队:inc(rear); queue[rear] := ele;  出队:ele := queue[front]; inc(front)  队空条件:front rear  问题:出队的元素还在数组里,不是很浪费吗? 循环队列  把队列看成环行的,则  入队:rear := (rear + 1) mod maxn; 不定义为queue[1..maxn]的 原因  出队:front := (front + 1) mod maxn;  可能存在队满的情况:条件也是front rear (想一想,如何解 决?) 用队列实现图的宽度优先搜索算法  我们要对图进行分层次遍历,遍历的序列为1, 2,…,7,… 宽度有先搜索算法遍历序列图 分析  要对图进行按层次遍历,我们可采用逐层标号法进 行。方法如下:  第一步:将初始点放入队列,并将该点设置为已标 号的点。  第二步:从队列中取出已标号而未检查的点,访问 该点的所有邻接顶点,放入队列,并进行标号,该 顶点为已检查的点。  第三步:检查队列中是否还有未标号的点,若有, 转第二步,否则,图便历完毕,算法终止。 Procedure bfs(v); {从v开始宽度有先遍历图} begin inicycque(q); {初始化队列q} q.encycque(v); visted[v]:=true; {初始点v放入队列,并标号} repeat while v 的邻接顶点存在do begin q.encycque(v的邻接顶点); visted[v 的邻接顶点]:=true; end; q.dlcycque(v); until q.empty ; {直到队列为空} end {Procedure} 例1 最大子序和 问题描述 输入一个长度为n的整数序 列(A ,A ,……,A ),从中找出 1 2 n 一段连续的长度不超过M的子序 列,使得这个序列的和最大。 最大子序和 例如: 当M=4时 当M=2或3时 序列 1,-3,5,1,-2,3 S=5+1=6 S=5+1+(-2)+3=7 数据范围: 50%的数据N,M=1000 100%的数据N,M=20000 一个简化的问题 [序列的最大连续和] 输入一个长度为n的整数序 列(A

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档