- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章图的基本概念
6.4 最小生成树 为实现这个算法需附设一个辅助数组closedge,以记录从U到V-U具有最小权值的边。对每个顶点vi∈V-U,在辅助数组中存在一个相应的分量closedge[i-1],它包括两个域,其中lowcost存储该边上的权。显然, 6.4 最小生成树 Closedge[i-1].lowcost=min{cost(u,vi)|u ∈ U},adjvex域存储该边依附的在U中的顶点。对如图所示的按普里姆算法构造网的一棵最小生成树的过程,在构造过程中辅助数组中各分量值的变化如下图所示。 I closedge 1 v2 2 v3 3 v4 4 v5 5 v6 U V-U k adjvex lowcost v1 6 V1 1 v1 5 v1 V2,v3,v4,v5,v6 2 adjvex lowcost v3 5 0 v1 5 v3 6 v3 4 v1,v3 V2,v4,v5,v6 5 adjvex lowcost v3 5 0 v6 2 v3 6 0 v1,v3,v6 V2,v4,v5 3 adjvex lowcost v3 5 0 0 v3 6 0 v1,v3,v6,v4 V2,v5 1 adjvex lowcost 0 0 0 v2 3 0 v1,v3,v6,v4,v2 v5 4 adjvex lowcost 0 0 0 0 0 v1,v3,v6,v4,v2,v5 6.4 最小生成树 Prim算法参见程序Graph1.cpp。 6.4.2 克鲁斯卡尔算法(Kruskal) 克鲁斯卡尔算法从另一途径求网的最小生成树。假设连通网N=(V,{E}),则令最小生成树的初始状态为只有n个顶点而无边的非连通图T=(V,{}),图中各个顶点自成一个连通分量。在E中选择权最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则舍弃此边而选择下一条权值最小的边。依次类推,直至T中所有顶点都在同一连通分量上为止。 此算法的关键是:当加入一条边时,如何确定该边依附的顶点是否落在T中不同的连通分量上。我们可以为每个连通分量设置一个标志号,这个标志号就是最新加入到连通分量中的那条边的终点号(在顶点数组中的序号),同一连通分量中的所有顶点有同一个标志号。每当要加入一条边时,先考察其起点和终点的连通分量标志号是否相同,若相同则舍弃此边,否则加入此边,并修改连通分量标志号。在生成树的初始状态,n个顶点各自是一个连通分量,这n个连通分量的标志号都是-1,用数组set[]存放n个连通分量的标志号,则此时,set[i]=-1(i=0,1,2,…,n-1)。关于连通分量的标志号的查找、修改请参见程序Graph5.cpp。在生成树中依次加入边(0,1), (1,2), (2,3), (3,4),连通分量的标志号数组set的变化过程如下表所示。 6.4 最小生成树 下标 0 1 2 3 4 操作 Set[ ] -1 -1 -1 -1 -1 初始状态 Set[ ] 1 -1 -1 -1 -1 加入(0,1) Set[ ] 1 2 -1 -1 -1 加入(1,2) Set[ ] 1 2 3 -1 -1 加入(2,3) Set[ ] 1 2 3 4 -1 加入(3,4) 6.5 最短路径 最短路径是指所经过的边上的权值之和为最小的路径,而不是经过的边的数目为最少。 最短路径问题有两个算法:一个是求从某个源点到其他各顶点的最短路径的迪杰斯特拉(Dijkstra)算法,另一个是求每一对顶点之间的最短路径的弗洛伊德(Floyed)算法。 下面,我们来明确两个概念:源点即路径的开始顶点;终点即路径的最后一个顶点。 6.5.1 从某个源点到其他各顶点的最短路径 我们首先讨论单源点的最短路径问题:给定有向带权图G和和源点v,求从v到G中其余各顶点的最短路径。例如,在如下所示的有向带权图中从0到1的路径有两条(0,1)和(0,2,3,1),前者长度是50,而后者长度是45。因此后者是从0到1的最短路径。如何求得这些路径?迪杰斯特拉提出了按路径长度递增的次序产生最短路径的算法。 首先,引进一个辅助向量D,它的每个分量D[i]表示当前所找到的从起始点到每个终点的最短路径的长度。它的初态为:若从v到vi有弧,则D[i] 6.5 最短路径 为弧上的权值;否则置D[i]为∞。显然,长度为D[j] = Min{D[i]|vi∈V}的路径就是从v出发的长度最短的一条最短路径。此路径为(v,vj)。 那么,下一条长度次短的最短路径是哪一条呢?假设该次短路径的终点是vk,则可想而知,这条路径或者是(v,vk)或者是(v,vj,vk)。它的长度或者是从v到vk的弧上的权值,或者是D[j]和从vj到vk的弧上的权值之和。 因此,在一般情况下,下一条
您可能关注的文档
- 第八章非线性处理器.ppt
- 第八讲 电容器的电容.pptx
- 第八章复杂应力状态及强度理论.ppt
- 第八课一念之差第二框学会拒绝.ppt
- 第八课__美国联邦政府的建立.ppt
- 第八章防水工程石元印版.ppt
- 第八课国家财政一轮复习.ppt
- 第八章聚合物的粘弹性.ppt
- 第八课财政与税收第一框国家财政课件.ppt
- 第六章 企业决策2.pptx
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
最近下载
- 《中国结核病预防控制工作技术规范(2020年版)》.PDF VIP
- 2023年北京市中考英语真题(含答案) .pdf VIP
- 南通大学2023-2024学年《病理学》期末考试试卷(A卷)附参考答案.docx
- 胸部损伤-教学课件.ppt VIP
- 某银行数据中心搬迁整体实施方案.pdf VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 国家公务员录用考试体检标准.doc VIP
- 入党申请书时事政治精选五篇.docx VIP
- 农村公路安全生命防护工程监理规划49943.doc VIP
- 高中英语3500词【打印版】乱序版3500词汇(带音标120页).pdf VIP
文档评论(0)