- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课件7-图
图的基本概念 图的基本概念 无向图的连通性 有向图的连通性 生成树 图的其它术语 图的ADT 图的存储表示 邻接矩阵 邻接矩阵 加权邻接矩阵 邻接表 邻接表 邻接表 邻接表 邻接表 邻接表的实现 邻接表的实现 十字接表 十字接表 邻接多重表 邻接多重表 图的遍历与连通性 深度优先搜索 深度优先搜索 深度优先搜索的实现 深度优先搜索的实现 广度优先搜索 广度优先搜索 广度优先搜索 无向图的连通分量和生成树 无向图的连通分量和生成树 无向图的连通分量和生成树 有向图的强连通分量的求法 有向图的强连通分量的求法 有向图的强连通分量的求法 有向图的强连通分量的求法 最小生成树 例:Kruscal 算法 例: Kruscal 算法 Kruscal 算法 最小生成树 Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 例:Prim算法 Prim算法 Prim算法 Prim算法 Prim算法 最短路径 Dijkstra算法 Dijkstra算法 Dijkstra算法 Dijkstra算法 Dijkstra算法 Floyd算法 Floyd算法 Floyd算法 活动网络 拓扑排序 拓扑排序 拓扑排序 拓扑排序 拓扑排序 拓扑排序 拓扑排序 AOE网络 关键路径 关键路径 关键路径 关键路径 关键路径 关键路径 关键路径 关键路径 Dijkstra 算法: 6、7的解释: V0 源点 X V 老 S V-S W 新 S Dijkstra 算法求单源最短路径: 设 V 是该有向图的结点的集合、集合 S 是已求得最短路径的结点的集合, 求 V0 至其余各结点的最短距离。S[i]=1,表示结点i在S中,否则不在。 1、S[0] = 1 ;// 结点 V0 最短路径已求得,是源点。 2、for ( i=1; in; i++ ) 3、 { D[i]=c[ 0, i ]; S[i]=0; Path[ v ] = -1; } 4、for ( i=1; in; i++ ) 5、{ 在 V-S 中选择一个结点VW;使得 D[w] 最小。将W 加入集合 S // 用最小化堆选 6、 for (每一个在 V-S 中的结点 v) //出最小的 6.5 { if (D[w]+C[w,v] D[v ]) Path[ v ] = w; 7、 D[v]=MIN( D[v],D[w]+C[w,v]) 8 }; //如用最小化堆实现,此处还要调整堆 9、 } 注意:本书的实现程序见程序7.6。其中,AdjMatrix[j*MaxNumVertex+k ] 保存顶点j、k之间的路径长度,替代邻接矩阵,即:Adj[j,k]。 3 2 0 4 100 10 1 60 30 10 20 50 源点 Dijkstra 算法: 正确性证明 设 V 是结点的集合,S 是已经得到最短 路径(由源点至本结点)的结点的集合。 T = V - S V0 源点 Vz Vy Vx Vl Vm Vn Vn 证明:设 V0 经 S 中的j结点,到 VZ 后直接 经有向边到达结点 Vj 的路径,是所有 这些路径中最短的。如图所示,路径 p1p2; p1p3;p1p4。则 p1 就是源 点 V0 至 Vj 的最短路径。 假定存在一条更短的路径,那么肯定 要经过 T - { Vj } 中的一个顶点,设 为 V3 ;但 p3 p1,同假设矛盾,不 可能。 Dijkstra 算法: 边的权值不可以为负值。 V0 V1 V2 100 -99 5 S T V p1 p2 p3 p4 注意:边的权值不可以为负值,这一点可以 从上述证明中推出。 声明:Dijkstra 算法和Prim算法本质是相同的,甚至可以用同一个函数求出,区别仅在于权值不同。 Dijktra算法邻接表示图且使用最小化堆时的时间复杂性O((n+e)logn)和 Prim 算法情况类似。 10 30 20 70 5 36 24 75 85 60 94 1.建最小化堆代价:O(n) 2.最小化堆中的所有结点,都将会输出。输出一个,堆都会
您可能关注的文档
最近下载
- 新教材鲁科版高中物理选择性必修第二册全册各章节知识点考点重点难题解题规律提炼汇总.pdf VIP
- 铁路安全管理条例.pptx VIP
- 22S521 预制装配式混凝土检查井.docx VIP
- 外墙保温装饰一体板施工方案.docx VIP
- HD微机继电保护测试系统说明书.pdf.comp.pdf
- 新概念英语第一册Lesson99-100练习题.docx VIP
- 12S8排水工程图集.docx VIP
- DZ_T 0181-1997水文测井工作规范.pdf
- CJJ 143-2010 埋地塑料排水管道工程技术规范.docx VIP
- 2024浮梁县教体系统“归雁计划”选调历年考试试题及答案.docx VIP
文档评论(0)