Chapter_06 图.ppt

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

知识回顾(2012-11-20) 图的定义 图的存储形式 邻接矩阵 例:画出有向图的十字链表。 连通图的深度优先遍历算法 递归算法 非连通图怎么遍历? 知识回顾 DFS BFS 1. 已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的边,应该( )。 A.将邻接矩阵的第i行删除 B.将邻接矩阵的第i行元素全部置为0 C.将邻接矩阵的第i列删除 D.将邻接矩阵的第i列元素全部置为0 算法实现 辅助的数据结构 (1)结构体数组Edge:存储边 struct{ VerTexType Head; //边的始点 VerTexType Tail; // 边的终点 ArcType lowcost; // 边上的权值 }Edge[arcnum]; (2)Vexset[i]:标识各个顶点的连通分量。 初试时,Vexset[i]=i;表示该顶点自成一个连通分量。 int Vexset[MVNum]; void MiniSpanTree_Kruskal(AMGraph G) { sort(Edge); for(i=0;iG.Vexnum;i++) Vexset[i]=i; for(i=1;iG.Vexnum;i++) { v1=LocateVex(G,Edge[i].Head); v2=LocateVex(G,Edge[i].Tail); vs1=Vexset[v1]; vs2=Vexset[v2]; if(vs1!=vs2) { coutEdge[i].HeadEdge[i].Tail; for (i=0;iG.Vexnum;i++) if (Vexset[i]==vs2) Vexset[i]=vs1; } } } 问题 几乎所有工程都可分为若干个称为活动的子工程,而这些子工程之间,通常受一定条件的约束,如某些子工程的开始必须在另一子工程完成之后。 关心两方面问题: 1、工程能否顺利进行。 2、估算整个工程完成必须的最短时间。 “事件(顶点)Vi” 的 最早发生时间 ve(i) ve(i) = 从源点到顶点i的最长路径长度; 此时间决定了所有以Vi为尾的弧所表示的活动的最早开始时间。 e(i)—表示活动ai的最早开始时间。 l(i) —表示活动ai的最迟开始时间。 l(i)-e(i) —活动ai的时间余量。 关键活动: l(i)=e(i)的活动。 关键路径上的所有活动都是关键活动。 提前完成非关键活动不能加快工程的进度。 从Ve[0] = 0开始,向前递推 Vi, Vj ? S2, i = 1, 2, ?, n-1 其中, S2是所有从Vi指向顶点Vj 的有向边 Vi , Vj的集合。 从Vl[n-1] = Ve[n-1]开始,反向递推 Vi, Vj ? S1, i = n-2, n-3, ?, 0 其中, S1是所有从顶点Vi 发出的有向边 Vi , Vj 的集合。 算法实现 图用邻接矩阵存储 length[][]存放最短路径长度 path[i][j]是从Vi到Vj的最短路径上Vj前一顶点序号 算法描述 Homework P161 2.(1)、(2)、(3) 练习 (3).已知一个图的顶点集V和边集G如下: V = {0,1,2,3,4,5,6,7,8,9}; E = {(0,1),(0,4),(1,2),(1,7), (2,8),(3,4),(3 ,8),(5,6),(5,8),(5,9),(6,7),(7,8),(8,9)}。请: (1)画出此图 (2)给出此图的邻接表 (3)写出从顶点0出发的深度优先搜索遍历的顶点序列 (4)写出从顶点0出发的广度优先搜索遍历的顶点序列 * (v0,v2)+ (v2,v3)(v0,v3) 终点 从v0到各终点的dist值和最短路径 v1 v2 v3 v4 v5 vj S之外的当前最短路径之顶点 60 {v0,v2,v3} 50 {v0,v4,v3} 30 {v0,v4} 90 {v0,v4, v5} 60 {v0,v4,v3,v5} 5 5 4 0 3 1 2 100 60 30 10 10 20 50 s {v0,v2} {v0 ,v2 ,v4} {v0 ,v2 ,v4 ,v3} {v0 ,v2 ,v4 ,v3 ,v5} 10 {v0,v2} ∞ 30 {v0,v

文档评论(0)

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

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

1亿VIP精品文档

相关文档