深度优先搜索算法最小生成树关键路径动态演示课件.ppt
-
资源ID:82437580
资源大小:564.50KB
全文页数:36页
- 资源格式: PPT
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
深度优先搜索算法最小生成树关键路径动态演示课件.ppt
v5 v1 v2 v3 v4 3 1 4 2 4 3 2 0 2 1 0 1 01234vertex firstedgeadjvex next顶点表顶点表边表边表V3V1V4V5V2G1void DFS1(AdjGraph*G,int i)/以以vi为出发点时对邻接表表示的图为出发点时对邻接表表示的图G进行进行深度优先深度优先深度优先深度优先搜索搜索 EdgeNode*p;coutadjvex if(!visited padjvex )/若若vj尚未访问尚未访问 DFS1(G,padjvex);/则以则以vj为出发点先深搜索为出发点先深搜索 p=pnext;/DFS1void DFS2(MTGraph*G,int i)/以以vi为出发点对矩阵为出发点对矩阵(0,1矩阵矩阵)表示的图表示的图G进行深度优先搜索进行深度优先搜索 int j;coutGvexlisti;/访问定点访问定点vi visitedi=TRUE;/标记标记vi已访问已访问 dfni=count;/对对vi进行编号进行编号 count+;/下一个顶点的编号下一个顶点的编号 for(j=0;jGn;j+)/依次搜索依次搜索vi的邻接点的邻接点 if(Gedgeij=1)&!visitedj)/若若vj尚未访问尚未访问 DFS2(G,j);/DFS20123=0101101001011010G.edge最小生成树演示1545235666abdcef算法采用邻接矩阵来存储图。1 a2 b3 c4 d5 e6 fa b cd e fa 6 1 5 b 6 5 3 c1 5 5 6 4d 5 5 2e 3 6 6f 4 2 6 用一个数组用一个数组L L来存储各个顶点到当前最小生成树来存储各个顶点到当前最小生成树的最短的最短 距离。距离。uvlength123456u u为顶点,为顶点,v v为当前生成树上为当前生成树上距离顶点距离顶点u u最近的顶点,最近的顶点,lengthlength为边(为边(u u,v v)的权值。)的权值。L:初始化数组初始化数组L L:uvlength123456初始情况下,生成树中只有初始情况下,生成树中只有一个顶点一个顶点a a,并令其到自身,并令其到自身的距离为的距离为0 0。L:1545235666abdcef初始化数组L:uvlength1aa02ba63ca14da55ea6f a在具体实现时,可以用一个比较大的数来表示。L:1545235666abdcef开始生成最小生成树:uvlength1aa02ba63ca14da55ea6f a接下来,选择距离生成树最近的顶点。方法是遍历数组L,找出length不等于0,且为最小的距离。length等于0表示当前顶点已经被选入生成树。L:1545235666abdcefuvlength1aa02ba63ca14da55ea6f ac被选中,加入生成树中。并更新数组L。L:1545235666abdcefuvlength1aa02ba63ca04da55ea6f aL:1545235666abdcef更新数组L,c被选入生成树,故对应项的Length应该赋值为0uvlength1aa02ba63ca04da55ea6f a更新剩余顶点到当前生成树的最短距离。以顶点b为例。c加入生成树前,b到生成树的最短距离已经在数组L中保存,c加入后,比较L中数据和边(b,c)的权值,如果后者小,说明b到生成树的距离变小了,应该更新,否则不变。L:1545235666abdcefuvlength1aa02ba63ca04da55ea6f aba=6ec=6,故更新L:1545235666abdcefuvlength1aa02bc53ca04da55ec66f aL:1545235666abdcefuvlength1aa02bc53ca04da55ec66f afa=fc=4,故更新L:1545235666abdcefuvlength1aa02bc53ca04da55ec66f c4更新完毕!L:1545235666abdcefuvlength1aa02bc53ca04da55ec66f c4选择距离当前生成树最近的顶点f。加入到生成树中并更新。、L:1545235666abdcefuvlength1aa02bc53ca04da55ec66f c0L:1545235666abdcefuvlength1aa02bc53ca04da55ec66f c0bc=5df=2,需要更新L:1545235666abdcefuvlength1aa02bc53ca04df25ec66f c0bc=5df=2,需要更新ec=6=ef=6,不用更新L:1545235666abdcefuvlength1aa02bc53ca04df25ec66f c0选择距离生成树最小的顶点d。加入到生成树中,并更新L:1545235666abdcefuvlength1aa02bc53ca04df05ec66f c0L:1545235666abdcefuvlength1aa02bc53ca04df05ec66f c0bc=5bd=,不用更新ec=6eb=3,需要更新L:1545235666abdcefuvlength1aa02bc03ca04df05eb36f c0L:1545235666abdcefuvlength1aa02bc03ca04df05eb36f c0L:1545235666abdcef选择距离生成树最近的顶点e加入生成树中,并更新uvlength1aa02bc03ca04df05eb06f c0L:1545235666abdcef选择距离生成树最近的顶点e加入生成树中,并更新uvlength1aa02bc03ca04df05eb06f c0L:1545235666abdcef此时全部顶点都被选入了生成树,最小生成树已经求出来了关键路径演示abceghk64521187244df00000 00006457115 715 14 18181818181818181816 1486610807064577 15 14 18181416107866000 0 64 5 7 77 15 1414160 23 66 8 87 10