- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 图3-最小生成树
第7章 图 数据结构讲义 - 最小生成树 7.4.1 无向图的连通分量和生成树 若图是连通的或强连通的,则从图中某一个顶点出发可以访问到图中所有顶点; 若图是非连通的或非强连通图,则需从图中多个顶点出发有哪些信誉好的足球投注网站访问而每一次从一个新的起始点出发进行有哪些信誉好的足球投注网站过程中得到的顶点访问序列恰为每个连通分量中的顶点集。 D E A B C F J L M G H I K D E G H I K A B C F J L M 对于连通图,深度优先有哪些信誉好的足球投注网站遍历算法及广度优先有哪些信誉好的足球投注网站遍历算法中遍历图过程中历经边的集合和顶点集合一起构成连通图的极小连通子图。它是连通图的一颗生成树。 生成树:是一个极小连通子图,它含有图中全部顶点,但只有n-1条边。 由深度优先有哪些信誉好的足球投注网站遍历得到的生成树,称为深度优先生成树,由广度优先有哪些信誉好的足球投注网站遍历得到的生成树,称为广度优先生成树。见下页无向图G7的两种生成树。 例1 :画出下图的生成树 DFS生成树 v0 v1 v2 v4 v4 v3 邻接表 0 1 2 3 4 ^ 1 3 3 4 ^ 1 4 2 ^ 0 v4 v3 v2 v1 v0 2 3 ^ 1 4 2 ^ 0 v0 v2 v1 v4 v3 BFS生成树 v0 v1 v3 v2 v4 无向连通图 2.生成森林 若一个图是非连通图或非强连通图,但有若干个连通分量或若干个强连通分量,则通过深度优先有哪些信誉好的足球投注网站遍历或广度优先有哪些信誉好的足球投注网站遍历,不可以得到生成树,但可以得到生成森林,且若非连通图有 n 个顶点,m 个连通分量或强连通分量,则可以遍历得到m棵生成树,合起来为生成森林,森林中包含n-m条树边。 生成森林可以利用非连通图的深度优先有哪些信誉好的足球投注网站遍历或非连通图的广度优先有哪些信誉好的足球投注网站遍历算法得到。 D E A B C F J L M G H I K 例2:画出下图的生成森林(或极小连通子图) 求解步骤: Step1:先求出邻接矩阵或邻接表; Step2:写出DFS或BFS结果序列; Step3:画出对应子图或生成森林。 这是一个无向非连通图 下面选用邻接表方式来求深度优先有哪些信誉好的足球投注网站生成森林 注:亦可由邻接矩阵或邻接表直接画出生成森林 11 5 5 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C 2 B 1 A 0 1 2 ^ ^ 0 ^ 12 0 ^ 0 ^ 4 ^ 3 7 8 ^ 10 6 ^ 6 ^ 10 11 ^ 12 6 ^ 7 0 9 ^ 12 1 9 ^ 11 1 ^ 12 2 9 ^ 4 7 ^ 10 8 11 D E G H I K 子图1: 再写出DFS结果(3次)ABMJLCF DE GHKI A B C F J L M 先写出邻接表(或邻接矩阵): 子图2: 子图3: 最小连通! D E G H I K 子图 (或连通分量) A B C F J L M A B C F J L M D E G H I K 生成森林 7.4.3 最小生成树 首先明确: 使用不同的遍历图的方法,可以得到不同的生成树;从不同的顶点出发,也可能得到不同的生成树。 按照生成树的定义,n 个顶点的连通网络的生成树有 n 个顶点、n-1 条边。 即有权图 目标: 在网络的多个生成树中,寻找一个各边权值之和最小的生成树。 构造最小生成树的准则 必须只使用该网络中的边来构造最小生成树; 必须使用且仅使用n-1条边来联结网络中的n个顶点; 不能使用产生回路的边。 欲在n个城市间建立通信网,则n个城市应铺n-1条线路;但因为每条线路都会有对应的经济成本,而n个城市可能有n(n-1)/2 条线路,那么,如何只能选择n–1条线路,使总费用最少? 典型用途: 数学模型: 顶点———表示城市,有n个; 边————表示线路,有n–1条; 边的权值—表示线路的经济代价; 连通网——表示n个城市间通信网。 显然此连通网是一个生成树! 问题抽象: n个顶点的生成树很多,需要从中选一棵代价最小的生成树,即该树各边的代价之和最小。此树便称为最小生成树MST(Minimum cost Spanning Tree) 1 6 5 4 3 2 7 13 17 9 18 12 7 5 24 10 1 5 6 4 3 2 5 7 9 10 13 下面仅讨论无向网的最小生成树问题。 普里姆方法的思想是:在图中任取一个顶点K作为开始点,令U={k},W=V-U,其中V为图中所有顶点集,然后找一个顶点在U中,另一个顶点在W中的边中最短的一条,找到后,将该边作为最小生成树的树边保存起来,并将该边顶点全部加入U集合中,并从W中删去这些顶点,然后重新调整U中顶点到W中顶点的距离, 使之保持最小,再重复此过程,直到W为空集止。求解过程参见下页图。(先深度再广度) 普里姆算法 例 1 6 5 4 3 2 6 5
文档评论(0)