第七章节 图-wl1.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章节 图-wl1

第7章 图 7.2 图的存储结构 7.3 图的遍历 深度优先遍历算法 7.4 图的连通性问题 7.4.2 有向图的强连通分量的 7.4.3 最小生成树 7.5 有向无环图及其应用 算法(使用邻接矩阵): 7.5.2 关键路径 问题分析 如何找e(i)=l(i)的关键活动? 一、求关键路径步骤 求Ve(i) 求Vl(j) 求e(i) 求l(i) 计算l(i)-e(i) 7.6 最短路径 问题提出 二、每一对顶点之间的最短路径 方法一:每次以一个顶点为源点,重复执行Dijkstra算法n次—— T(n)=O(n3) 方法二:弗洛伊德(Floyd)算法 算法思想:逐个顶点试探法 求最短路径步骤 初始时设置一个n阶方阵,令其对角线元素为0,若存在弧Vi,Vj,则对应元素为权值;否则为? 逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值 所有顶点试探完毕,算法结束 总 结 本章讲述了一种非常重要的非线性结构,本章要求学生重点掌握: (1)图的定义与相关术语 (2)图的存储方法 (3)图的连通性,生成树算法 (4)最小生成树算法,拓扑排序算法 (5)关键路径算法,最短路径算法 本章的相关算法比较难,但是确是解决重要问题的关键。请同学注意多读书,多读讲义。 习 题 C4 C5 C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1--C2--C3 (3) C5 C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1--C2--C3--C4 (4) C6 C8 C10 C11 C12 拓扑序列:C1--C2--C3--C4--C5--C7--C9 C6 C8 C11 C12 拓扑序列:C1--C2--C3--C4--C5--C7--C9 --C10 (8) C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1--C2--C3--C4--C5 (5) C6 C8 C9 C10 C11 C12 拓扑序列:C1--C2--C3--C4--C5--C7 (6) C6 C8 C12 拓扑序列:C1--C2--C3--C4--C5--C7--C9 --C10--C11 (9) C8 C12 拓扑序列:C1--C2--C3--C4--C5--C7--C9 --C10--C11--C6 (10) C8 拓扑序列:C1--C2--C3--C4--C5--C7--C9 --C10--C11--C6--C12 (11) 拓扑序列:C1--C2--C3--C4--C5--C7--C9 --C10--C11--C6--C12--C8 (12) 算法实现(P182) 1、以邻接表作存储结构 (1)把邻接表中所有入度为0的顶点进栈 (2)栈非空时,输出栈顶元素Vj并退栈;在邻接表中查找Vj的直接后继Vk,把Vk的入度减1;若Vk的入度为0则进栈 重复上述操作直至栈空为止。若栈空时输出的顶点个数不是n,则有向图有环;否则,拓扑排序完毕 建邻接表:T(n)=O(e) 搜索入度为0的顶点的时间:T(n)=O(n) 拓扑排序:T(n)=O(n+e) 邻接表结点: typedef struct node { int adjvex; //顶点域 struct node *nextarc; //链域 }TNODE; 表头结点: typedef struct tnode { int indegree; //入度域 struct node *firstarc; //链域 }GrNODE; typedef stuct GrNODE g[M]; //g[0]不用 int vexnum; }Graph; 0 1 2 2 in link 5 5 4 3 ^ ^ ^ vex next 3 ^ 2 5 ^ 2 4 0 1 2 3 4 5 6 ^ 输出序列: 3 2 1 0 4 1 6 6 1 top 1 top 6 top p p p p 2 1 top p p p p 0 top 4 0 top 3 1 3 top p p p 1 0 top 2 top 2 top 4 0 p p top 5 top 5 例 1 2 3 4 5 6 算法: Status ToplogicalSort(Graph G) { FindInDegree(G); //对各顶点求入度,并放入indegree域中 InitSta

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档