网站大量收购闲置独家精品文档,联系QQ:2885784924

石河子大学信息科学与技术学院数据结构课件第七章 图(2).ppt

石河子大学信息科学与技术学院数据结构课件第七章 图(2).ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 图 7.1 图的定义和术语 7.2 图的存储结构 7.2.1 数组表示法 7.2.2 邻接表 7.3 图的遍历 7.3.1 深度优先搜索 7.3.2 广度优先搜索 7.4 图的连通性问题 7.4.3 最小生成树 7.5 有向无环图及其应用 7.5.1 拓扑排序 7.6 最短路径 7.6.1 从某个源点到其余各顶点的最短路径 7.6.2 每一对顶点之间的最短路径 求关键路径步骤: 求Ve(i) 求Vl(j) 求e(i) 求l(i) 计算l(i)-e(i) 问题提出 * 数据结构 tjm * 《 数据结构》 第七章 图 (下) 7.3 图的遍历 7.3.1 深度优先搜索 方法:从图的某一顶点V0出发,访问此顶点; 然后依次从V0的未被访问的邻接点出发,深度优先遍历图,直至图中所有和V0相通的顶点都被访问到; 若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止。 V1 V2 V4 V5 V3 V7 V6 V8 例: 深度遍历:V1? V2 ?V4 ? V8 ?V5 ?V3 ?V6 ?V7 深度优先遍历算法(递归算法)参见P169。 V1 V2 V4 V5 V3 V7 V6 V8 深度优先生成树 V1 V2 V4 V5 V3 V7 V6 V8 V1 V2 V4 V5 V3 V7 V6 V8 例: 1 2 3 4 1 3 4 2 vexdata firstarc 2 7 8 3 ^ ^ ^ adjvex nextarc 5 5 6 4 1 ^ 5 1 2 8 2 ^ 6 7 8 6 7 8 7 3 6 3 5 4 ^ ^ ^ 深度遍历:V1? V3 ? V7 ? V6 ? V2 ? V5 ? V8 ? V4 7.3.2 广度优先搜索 方法:从图的某一顶点V0出发,访问此顶点后,依次访问V0的各个未曾访问过的邻接点;然后分别从这些邻接点出发,广度优先遍历图,直至图中所有已被访问的顶点的邻接点都被访问到; 若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止。 V1 V2 V4 V5 V3 V7 V6 V8 例: 广度遍历:V1? V2 ?V3 ? V4 ?V5 ?V6 ?V7 ?V8 广度优先遍历算法参见P170。 V1 V2 V4 V5 V3 V7 V6 V8 广度优先生成树 V1 V2 V4 V5 V3 V7 V6 V8 例: 1 4 2 3 5 1 2 3 4 1 3 4 2 vexdata firstarc 5 5 4 3 ^ ^ ^ adjvex nextarc 5 5 1 ^ 5 1 1 4 3 ^ 2 2 广度遍历序列:1 4 3 2 5 7.4 图的连通性问题 问题提出:要在n个城市间建立通信联络网,用顶点表示城市;权表示城市间建立通信线路所需花费代价。希望找到一棵生成树,它的每条边上的权值之和(即建立该通信网所需花费的总代价)最小——最小(代价)生成树。 1 6 5 4 3 2 7 13 17 9 18 12 7 5 24 10 7.4.3 最小生成树 算法思想:设N=(V,{E})是连通网,TE是N上最小生成树中边的集合。 初始令U={u0},(u0?V), TE=?。 在所有u?U,v?V-U的边(u,v)?E中,找一条代价最小的边(u0,v0)。 将(u0,v0)并入集合TE,同时v0并入U。 重复上述操作直至U=V为止,则T=(V,{TE})为N的最小生成树。 方法一:普里姆(Prim)算法 构造最小生成树的方法 例: 1 6 5 4 3 2 6 5 1 3 5 6 6 4 2 5 1 3 1 1 6 3 1 4 1 6 4 3 1 4 2 1 1 6 4 3 2 1 4 2 5 1 6 5 4 3 2 1 4 2 5 3 算法实现:图用邻接矩阵表示。 算法参见P175。 例: 1 6 5 4 3 2 6 5 1 3 5 6 6 4 2 5 1 6 5 4 3 2 1 2 3 4 5 方法二:克鲁斯卡尔(Kruskal)算法 算法思想:设连通网N=(V,{E}),令最小生成树初始状态为只有n个顶点而无边的非连通图T=(V,{?}),每个顶点自成一个连通分量。 在E中选取代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中;否则,舍去此边,选取下一条代价最小的边。 依此类推,直至T中所有顶点都在同一连通分量上为止。 7.5 有向无环图及其应用 7.5.1 拓扑排序 问题提出:假设以有向图表示一个工程的施工图或程序的数据流图,则图中不允许出现回路。如何检查有向图

您可能关注的文档

文档评论(0)

ormition + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档