第16讲 图遍历与最小生成树.pptVIP

  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文档。上传文档
查看更多
第16讲 图遍历与最小生成树

第16讲 图的遍历与 最小生成树 主讲人:陈红丽 图的遍历 图的遍历操作要解决的关键问题 因图中可能存在回路,某些顶点可能会被重复访问,如何避免遍历因回路而陷入死循环。 解决方案:附设访问标志数组visited[n] 图中一个顶点可和其它多个顶点相连,当这样的顶点访问过后,如何选取下一个要访问的顶点? 解决方案:深度优先遍历和广度优先遍历。 深度优先遍历过程是递归的,在遍历过程中,若某个顶点的所有邻接顶点均被访问过,则需要回溯。 根据图G的邻接矩阵,从顶点V4出发,写出深度优先遍历序列。 已知某图G的邻接表如下所示,分别写出从顶点0和顶点3出发的DFS序列。 广度优先遍历 从图中某个顶点vi出发: 1)访问顶点vi,并置访问标志 2)访问vi的所有未被访问的邻接点w1,w2,…,wk; 3)依次从这些邻接点(在步骤2)中访问的顶点)出发,访问它们的所有未被访问的邻接点;依此类推,直到图中所有访问过的顶点的邻接点都被访问 4)如若此时图中尚有顶点未被访问,则需另选一个未曾被访问过的顶点作为新的起始点,重复上述过程,直至图中所有顶点都被访问到为止。 根据图G的邻接矩阵,从顶点V4出发,写出广度优先遍历序列。 已知邻接表,求以顶点0和顶点3为起点的广度优先遍历序列。 遍历的应用 利用图的遍历运算求解图的连通性问题 无向图是否连通、有几个连通分量,求解无向图的所有连通分量 深度优先生成树、生成森林 广度优先生成树、生成森林 有向图是否是强连通、求解其强连通分量 求无向网的最小代价生成树 回顾:连通无向图及其生成树 最小生成树 生成树的代价:设G=(V,E)是一个无向连通网,生成树上各边的权值之和称为该生成树的代价。 最小生成树:在网G的所有生成树中,代价最小的生成树。 求最小生成树的两个算法: 普里姆算法 从1个起点0条边出发,不断扩充顶点,直到包括所有顶点为止,适用于求边稠密的网的最小生成树。 克鲁斯卡尔算法 从n个顶点0条边出发,不断扩充边,直到包括n-1条边为止,适用于求边稀疏的网的最小生成树。 普里姆(Prim)算法 设N=(V,E)是连通网,从起点v0出发,构造最小生成树T=(VT, ET)。VT是N上最小生成树中顶点的集合,ET是N上最小生成树中边的集合。 算法步骤 ①初始化VT={v0},ET={ }; ②找权值最小的(Vp,Vq), Vp∈VT, Vq∈V-VT; ③将(Vp,Vq)并入ET,同时Vq并入VT; ④重复②③步骤n-1次。 Kruskal算法 克鲁斯卡尔(Kruskal)算法 算法思路 ①尽可能选择n-1条权值最小的边; ②但不能构成回路。 算法步骤 ①初始化VT=V,ET={},即n个顶点是n个连通分量; ②选择权值最小的边(Vp,Vq); ③若Vp、Vq不属于同一连通分量,将(Vp,Vq)并入ET;否则,舍弃。 ④重复②③,直至选取了n-1条边。 习题: (1)给出用克鲁斯卡尔算法构造最小生成树的详细过程 (2) 给出用普里姆算法从顶点a出发构造最小生成树的详细过程 AOV网与拓扑排序 拓扑排序 普里姆算法构造最小生成树的过程是从一个顶点VT={v0}作初态,不断寻找与VT集合中顶点相邻且代价最小的边的另一个顶点,扩充VT集合直至VT=V为止。 如果在AOV网中存在一条从顶点a到顶点b之间的弧,则在拓扑有序序列中顶点 a 必须领先于顶点 b,反之如果在AOV网中顶点a和顶点b之间没有弧,则在拓扑有序序列中这两个顶点的先后次序关系可以随意 AOV网中弧集具有偏序关系:自反、反对称、可传递。 全序关系:任意二个结点间存在关系的偏序关系。 全序序列:具有全序关系的序列,也称拓扑序列。 拓扑排序:从有向无环图中,求出和原图不矛盾的全序序列。 显然,拓扑序列不唯一。 第七章 图 课上不吃早点、不玩手机、不睡觉 * 数据结构 图的遍历是从图中某一顶点出发,对图中所有顶点访问一次且仅访问一次。 V1 V2 V4 V5 V8 V3 V6 V7 V1 V5 V2 V4 V2 V8 V1 V7 V3 V3 V6 V3 V2 V4 V1 V6 V5 V8 V7 与二叉树的先序遍历相类似 深度优先遍历 深度优先遍历 从图中某顶点v出发 1)访问顶点 v,置访问标记 visited[v] = 1; 2)依次从 v 的未被访问的邻接点出发,继续对图进行深度优先遍历,直到和v有路径相通的顶点都被访问过; 3)如果图中还有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问过为止。 0 1 1 0 0 0 0 0 0 0

文档评论(0)

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

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

1亿VIP精品文档

相关文档