- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件技术基础05-第五讲-1
* 1. 求图的生成树 如果连通图G的一个子图是一棵包含G的所有顶点的树,则该子图称为G的生成树(SpanningTree)。 图的生成树的特征: ——n 个顶点的连通图的生成树有 n 个顶点、n-1 条边。 求生成树的方法: ——DFS(深度优先搜索) ——BFS(广度优先搜索) 注1:生成树是原图的极小连通子图; 注2:从不同顶点出发进行DFS或BFS,得到的生成树不同,即:图的生成树不惟一。 * 1. 图的生成树方法 求生成树的方法: 设图G=(V,E)是一个具有n个顶点的连通图。则从G的任一顶点(源点)出发,作一次深度优先搜索(或广度优先搜索),搜索到的n个顶点和搜索过程中从一个已访问过的顶点vi搜索到一个未曾访问过的邻接点vj,所经过的边(vi,vj)(共n-1条)组成的极小连通子图就是生成树。(源点是生成树的根) 由深度优先搜索得到的生成树称为深度优先生成树,简称为DFS生成树;由广度优先搜索得到的生成树称为广度优先生成树,简称为BPS生成树。 * 1. 图的生成树方法 求生成树的方法: ——DFS(深度优先搜索) 只要在DFS(或DFSM)算法的if语句中,在递归调用语句之前加入适当生成边(vi,vj)的操作(如将该边输出或保存),即可得到求DFS生成树的算法。 ——BFS(广度优先搜索) 在BFS(或BFSM)算法的if语句中,加入生成树边(vi,vj)的操作,可得到求BFS生成树的算法。 * 例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 无向连通图 v0 v1 v2 v4 v4 v3 v0 v1 v2 v4 v4 v3 本例无回溯 * Minimum Cost Spanning Tree 求最小生成树 目标:在网(有权图)的多个生成树中,寻找一个各边权值之和最小的生成树(MST)。 典型实例: n个城市建网,如何选择n–1条线路,使总费用最少?——用最小生成树求解 Kruskal(克鲁斯卡尔)算法 Prim(普里姆)算法 求最小生成树有两种方法: 注:任何一个无向连通图的最小生成树只有一棵。 对边操作 对顶点操作 * 普利姆(Prim)算法示例: 归并顶点 1 4 6 5 2 3 1 5 6 5 5 4 6 3 6 2 3 6 4 2 5 1 Prim算法思想: Wu Shuai * Wu Shuai * Wu Shuai * 公用邮箱 Email:softtech2013@163.com Password:sasee2013 2.6.1 图的基本概念 * * 1 什么是图 图△: 数据元素的集合D中各元素之间存在任意的前后件关系,这一数据结构称为“图”,用G表示。 * 2. 图的几个概念-1 有向图△ 无向图△ : 无向完全图△ : 边的数目达到了n(n-1)/2. 有值图△ : 图中任意两个结点a、b之间规定了一个值f(a,b),则该图为有值图。 * 有向图 A B D C * 无向图 A B D C E * 无向完全图 1 2 4 3 任意两两元素均已相连 边数达到n(n-1)/2, n为图的结点数 * 有值图 A B D C E 10 30 35 25 20 40 15 * 2. 图的几个概念-2 结点的出度△ : 一个结点的后件个数 结点的入度△ : 一个结点的前件个数 结点的度△ : 入度与出度之和 无向图中结点的入度等于出度 图的度△ : 图中结点的最大度 * 2.6.2 图的存储结构 关联矩阵 邻接表 * 图的结构比较复杂,因此无法用数据元素在存储空间中的物理位置来表示各数据元素之间的前后件关系。 A B D C E * 1. 关联矩阵表示法 为了存储图,采用关联矩阵方法 首先,用一个长度为n的一维数组D(1:n)来存放图中的数据结点的信息; 然后,采用一个n阶二维数组R(1:n,1:n)来存放图中的各结点的关联信息,成为关联矩阵。R的定义如下: * 1 2 3 4 5 A B C D E D(1:5) A B D C E 1 2 4 5 3 无向图关联矩阵表示 * 从无向图的邻接矩阵可以得出如下结论 (1)矩阵是对称的; (2)第i行或第j 列1的个数为顶点i 的度; (3)矩阵中1的个数的一半为图中边的数目; (4)很容易判断顶点i 和顶点j之间是否有边相连(看矩阵中i行j列值是否为1)。 * A B D C 1 2 3 4 A B C D D(1:4) 有向图关联矩阵表示 * 从有向图的邻接矩阵可以
文档评论(0)