牛小飞《数据结构》9.2图的遍历.ppt
《牛小飞《数据结构》9.2图的遍历.ppt》由会员分享,可在线阅读,更多相关《牛小飞《数据结构》9.2图的遍历.ppt(33页珍藏版)》请在三一办公上搜索。
1、图的遍历,深度优先搜索,广度优先搜索,图的遍历,小结和作业,复习,课堂练习,图的遍历的应用举例(自学),复习-图的存储结构,复习-图的存储结构,复习-图的存储结构,复习-图的存储结构,图的遍历,定义:从图中某个顶点出发游历图,访遍图中其余顶点,并且使图中的每个顶点仅被访问一次的过程。,用途:是解决图的连通性、拓扑排序和求关键路径等算法的基础。,深度优先搜索,广度优先搜索,分类:,深度优先搜索,W1、W2和W3 均为 V 的邻接点,SG1、SG2 和 SG3 分别为含顶点W1、W2和W3 的子图。,深度优先搜索,访问顶点V;for(W1、W2、W3)若邻接点Wi未被访问,则从它出发进行深度优先搜
2、索遍历。,深度遍历序列:,V1 V2 V4 V8 V5,V6 V3 V7,V1,V2,V4,V5,V3,V7,V6,V8,深度优先搜索-连通图,1、从深度优先搜索遍历连通图的过程类似于树的先根遍历2、对图G深度优先搜索得到的顶点序列不是唯一的?3、搜索过程中经过的边和所有的顶点构成了图的一棵生成树。4、如何判别V的邻接点是否被访问?为每个顶点设立一个“访问标志 visited”;,深度优先搜索-连通图,void DFS(int v)/从顶点v出发,深度优先搜索遍历连通图/DFS,深度优先搜索-连通图,vertexsv.visited=true;,/对v的尚未访问的邻接顶点w递归调用DFS,fo
3、r(w=firstAdjVex(v);w=0;w=nextAdjVex(v,w)if(vertexsw.visited=false)DFS(w);,V1,V2,V3,V4,V5,V1,V2,V8,V5,V6,V4,V2,V8,V8,V3,V1,V6,V7,V3,V8,DFS(G,V1),V7,深度优先搜索非连通图,首先将图中每个顶点的访问标志设为 fasle,之后搜索图中每个顶点,如果未被访问,则以该顶点为起始点,进行深度优先搜索遍历,否则继续检查下一顶点。,V1,V2,V4,V5,V3,V7,V6,V8,深度遍历:,V1 V2 V4 V8,V5,V3 V6 V7,深度优先搜索非连通图,深度优
4、先搜索非连通图,void DFSTraverse(int v)for(v=0;vvexNum;+v)vertexsv.visited=false;/访问标志数组初始化 for(v=0;vvexNum;+v)if(!vertexsv.visited)DFS(v);/对尚未访问的顶点调用DFS,T,T,T,T,T,T,T,T,T,a,c,h,d,f,k,e,b,g,a,c,h,f,k,e,d,b,g,访问标志:,访问次序:,例如:,a,c,h,d,f,e,k,b,g,1.从图中某个顶点V0 出发,访问此顶点。,2.然后依次从V0的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有与V0有路径
5、的顶点都被访问到。,3.如果图中还有顶点未被访问,则令选一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到。,深度优先搜索非连通图,对连通图,从起始点V到其余各顶点必定存在路径。其中,,V-w1,V-w2,V-w8 的路径长度为1;,V-w7,V-w3,V-w5的路径长度为2;,V-w6,V-w4的路径长度为3。,w1,w8,w3,w7,w6,w2,w5,w4,广度优先搜索,广度优先搜索,1.从图中的某个顶点V0出发,并在访问此顶点之后依次访问V0的所有未被访问过的邻接点,2.然后按这些顶点被访问的先后次序依次访问它们的邻接点,直至图中所有和V0有路径相通的顶点都被访问到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 牛小飞 9.2 遍历
链接地址:https://www.31ppt.com/p-5997894.html