- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14讲图的生成树分析
第十四讲 图的生成树 主讲:朱郑州 主要内容 无向图的连通性 图的生成树 主要内容 主要内容 克鲁斯卡尔(Kruskal)算法 克鲁斯卡尔(Kruskal)算法 克鲁斯卡尔(Kruskal)算法 克鲁斯卡尔(Kruskal)算法 克鲁斯卡尔(Kruskal)算法 克鲁斯卡尔(Kruskal)算法 克鲁斯卡尔(Kruskal)算法 《数据结构》 Data Structure * 《数据结构》 Data Structure 2. Prim算法 1. 图的连通性 3. Kruskal算法 要想判定一个无向图是否为连通图,或有几个连通分量,通过对无向图遍历即可得到结果。 非连通图:需从多个顶点出发进行搜索,而每一次从一个新的起始点出发进行搜索过程中得到的顶点访问序列恰为其各个连通分量中的顶点集。 连通图:仅需从图中任一顶点出发,进行深度优先搜索(或广度优先搜索),便可访问到图中所有顶点。 count=0; 2. for (图中每个顶点v) 2.1 if (v尚未被访问过) 2.1.1 count++; 2.1.2 从v出发遍历该图; 3. if (count==1) printf(图是连通的“); else printf(图中有count个连通分量); 求无向图的连通分量 无向图的连通性 ⑴ 从某顶点出发进行深度优先遍历,并按其所有邻接点都访问(即出栈)的顺序将顶点排列起来。 ⑵ 从最后完成访问的顶点出发,沿着以该顶点为头的弧作逆向的深度优先遍历。若不能访问到所有顶点,则从余下的顶点中最后访问的那个顶点出发,继续作逆向的深度优先遍历,直至有向图中所有顶点都被访问到为止。 ⑶ 每一次逆向深度优先遍历所访问到的顶点集便是该有向图的一个强连通分量的顶点集。 有向图的连通性 (a)深度优先生成树 (b) 广度优先生成树 V1 V3 V2 V4 V5 V6 V7 V8 V1 V3 V2 V4 V5 V6 V7 V8 由深度优先遍历得到的为深度优先生成树, 由广度优先遍历得到的为广度优先生成树。 一个连通图的生成树可能不唯一,由不同的遍历次序、从不同顶点出发进行遍历都会得到不同的生成树。 对于非连通图,通过图的遍历,将得到的是生成森林。 结论: 图的生成树 生成树的代价:设G=(V,E)是一个无向连通网,生成树上各边的权值之和称为该生成树的代价。 最小生成树(Minimum Spanning Tree, MST):在图G所有生成树中,代价最小的生成树称为最小生成树。 最小生成树的概念可以应用到许多实际问题中。 例:在n个城市之间建造通信网络,至少要架设n-1条通信线路,而每两个城市之间架设通信线路的造价是不一样的,那么如何设计才能使得总造价最小? 最小生成树 假设G=(V, E)是一个无向连通网,U是顶点集V的一个非空子集。若(u, v)是一条具有最小权值的边,其中u∈U,v∈V-U,则必存在一棵包含边(u, v)的最小生成树。 顶点集U V-U u v v u 顶点集 T1 T2 最小生成树性质 2. Prim算法 1. 图的连通性 3. Kruskal算法 基本思想:设G=(V, E)是具有n个顶点的连通网,T=(U, TE)是G的最小生成树, T的初始状态为U={u0}(u0∈V),TE={ },重复执行下述操作:在所有u∈U,v∈V-U的边中找一条代价最小的边(u, v)并入集合TE,同时v并入U,直至U=V。 关键:是如何找到连接U和V-U的最短边。 利用MST性质,可以用下述方法构造候选最短边集:对应V-U中的每个顶点,保留从该顶点到U中的各顶点的最短边。 普里姆(Prim)算法 U={A} V-U={B, C, D, E, F} cost={(A, B)34, (A, C)46, (A, D)∞,(A, E)∞,(A, F)19} 25 12 34 19 26 46 38 17 25 A B E D C F 普里姆(Prim)算法 25 12 34 19 26 46 38 17 25 A B E D C F U={A, F} V-U={B, C, D, E} cost={(A, B)34,(F, C)25, (F, D)25,(F, E)26} 普里姆(Prim)算法 25 12 34 19 26 46 38 17 25 A B E D C F U={A, F, C} V-U={B, D, E} cost={(A, B)34, (C, D)17, (F, E)26} 普里姆(Prim)算法 25 12 3
您可能关注的文档
- 第13课-丝绸之路的开通分析.ppt
- 第13课从蒸汽机到互联网分析.ppt
- 第14周电子表格的应用3-4分析.doc
- 第14.1节热机分析.ppt
- 第13课红军不怕远征难课件分析.ppt
- 第14章-搅拌设备设计分析.ppt
- 第14章一次函数复习课件分析.ppt
- 第14章_排泄护理分析.ppt
- 第14章外观模式分析.ppt
- 第14章城市环境管理分析.ppt
- 新解读《GB_T 26548.9 - 2017手持便携式动力工具 振动试验方法 第9部分:除锈锤和针束除锈器》最新解读.docx
- 新解读《GB_T 26686-2017地面数字电视接收机通用规范》最新解读.docx
- 新解读《GB_T 26831.4-2017社区能源计量抄收系统规范 第4部分:仪表的无线抄读》最新解读.docx
- 新解读《GB_T 26831.5-2017社区能源计量抄收系统规范 第5部分:无线中继》最新解读.docx
- 新解读《GB_T 27677-2017铝中间合金》最新解读.docx
- 新解读《GB_T 29265.301-2017信息技术 信息设备资源共享协同服务 第301部分:设备类型》最新解读.docx
- 新解读《GB_T 29265.201-2017信息技术 信息设备资源共享协同服务 第201部分:基础协议》最新解读.docx
- 三年级语文期末考试答题规范分析及训练措施.docx
- 施工现场作业人员安全隐患培训整改措施.docx
- 生态修复环保环卫管理及保证措施.docx
文档评论(0)