- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
复习图的知识: 图的存储结构 网(带权图) 的邻接表: 图的遍历 8.1 图的生成树和最小生成树 一、生成树与最小生成树的概念: 生成树定义: 连通图G的生成树是一个包含图G的所有顶点的图G的极小连通子图。 所谓极小是指:若在树中任意增加一条边,则将出现一个回路;若去掉一条边,将会使之变成非连通图。 一棵n个顶点的生成树有且仅有n-1条边。 prim算法描述: 输入:G=(V, E) //n个顶点的连通网 输出:T=(U, TE) //最小生成树 U = {u0}; // u0为初始点 TE = Ф; for( k=1; kn; k++ ){ // 循环 n-1 次 在所有u∈U和v∈V-U的带权边中求最小权值的边u,v U = U ∪ {v} TE = TE ∪ {u, v} } 习题:下图为一无向连通网络,试按邻接矩阵存储结构画出从顶点1出发的深度优先生成树、广度优先生成树、最小生成树。 8.2 最短路径 一、最短路径概念: 考虑有向图或有向网 最短路径:从一个顶点(源点)到另一个顶点(终点)的路径中路径长度(带权路径长度)最短的那条路径。 说明:不带权图的最短路径问题是带权图的最短路径问题的一个特例,可将图视为每条边的权值均为1的带权图。 两种最常见的最短路径问题: 1.从某个源点到其余各顶点的最短路径 2.每对顶点间的最短路径 Dijkstra算法 ① 初始化: S ← { v0 }; dist[j] ← Edge[0][j], j = 1, 2, …, n-1; path[j] ← 0, j; // n为图中顶点个数 ② 求出最短路径的长度: dist[k] ← min { dist[i] }, i ? V- S ; S ← S U { k }; ③ 修改: dist[i] ← min{ dist[i], dist[k] + Edge[k][i] }, 若 dist[i] 修改了,则 path[i] ← path[k] 加上 i 对于每一个 i ? V- S ; ④ 判断:若 S = V, 则算法结束,否则转 ②。 8.3 拓扑排序 一、拓扑排序概念: 施工过程、生产流程、程序流程、计划实施等都可看做“工程”。除了很小的工程外,一般都把工程分为若干个叫做“活动”的子工程,这些活动(子工程)之中有些有先后进行的关系。依次完成了这些活动,这个工程就可以完成了。 可以用有向图表示一个工程。顶点表示活动,边表示活动之间的关系(Vi, Vj表示Vi 必须先于活动Vj 进行)。这种有向图叫做顶点表示活动的网 ,简称AOV (Activity On Vertices)网。 例如: 计算机专业学生的课程学习安排计划就可看做一个工程。学习一门课程就是进行一项活动。其中有些课程要求先修课程,有些则不要求。可以用AOV网表示。这样有的课程之间有先后学习的要求,有的课程可以并行地学习。 AOV网应该是有向无环图,即图中不能出现回路(即环)。如果出现了回路,则意味着某项活动应以自己作为先决条件,则此AOV网所代表的工程是不可行的。 若AOV网中不存在回路,则所有顶点 (代表各个活动)可以排列成一个线性序列(V1, V2, …,Vi,..., Vn),使得每个活动的前驱活动都排在该活动的前面,此线性序列称为拓扑序列。构造AOV网全部顶点的拓扑序列的过程就叫做拓扑排序。拓扑序列不唯一。 例如: 对学生课程学习工程图进行拓扑排序, 得到的拓扑有序序列为 C1 , C2 , C3 , C4 , C5 , C6 , C8 , C9 , C7或 C1 , C8 , C9 , C2 , C5 , C3 , C4 , C7 , C6 …….. 可用于安排选课计划 。 拓扑排序的方法: ① 输入AOV网。令 n 为顶点个数。 ② 在AOV网中选一个没有直接前驱(即入度为0)的顶点, 并输出之; ③ 从图中删去该顶点, 同时删去所有它发出的有向边(出边); ④ 重复以上 ②、③步, 直到 全部顶点均已输出,则拓扑序列形成; 或:
文档评论(0)