7图的遍历.ppt
- 文档编号:1769247
- 上传时间:2022-10-23
- 格式:PPT
- 页数:27
- 大小:383.50KB
7图的遍历.ppt
《7图的遍历.ppt》由会员分享,可在线阅读,更多相关《7图的遍历.ppt(27页珍藏版)》请在冰豆网上搜索。
数据结构数据结构7.37.3图的遍历图的遍历图图图图的的的的遍遍遍遍历历历历是是是是指指指指从从从从图图图图中中中中的的的的任任任任一一一一顶顶顶顶点点点点出出出出发发发发,对对对对图图图图中中中中的的的的所所所所有有有有顶顶顶顶点点点点访访访访问问问问一次且只访问一次。
一次且只访问一次。
一次且只访问一次。
一次且只访问一次。
由由由由于于于于图图图图结结结结构构构构本本本本身身身身的的的的复复复复杂杂杂杂性性性性,所所所所以以以以图图图图的的的的遍遍遍遍历历历历操操操操作作作作也也也也较较较较复复复复杂杂杂杂,主主主主要要要要表现在以下四个方面:
表现在以下四个方面:
表现在以下四个方面:
表现在以下四个方面:
在在在在图图图图结结结结构构构构中中中中,没没没没有有有有一一一一个个个个“自自自自然然然然”的的的的首首首首结结结结点点点点,图图图图中中中中任任任任意意意意一一一一个顶点都可作为第一个被访问的结点。
个顶点都可作为第一个被访问的结点。
个顶点都可作为第一个被访问的结点。
个顶点都可作为第一个被访问的结点。
在在在在非非非非连连连连通通通通图图图图中中中中,从从从从一一一一个个个个顶顶顶顶点点点点出出出出发发发发,只只只只能能能能够够够够访访访访问问问问它它它它所所所所在在在在的的的的连连连连通通通通分分分分量量量量上上上上的的的的所所所所有有有有顶顶顶顶点点点点,因因因因此此此此,还还还还需需需需考考考考虑虑虑虑如如如如何何何何选选选选取取取取下下下下一一一一个个个个出出出出发发发发点以访问图中其余的连通分量。
点以访问图中其余的连通分量。
点以访问图中其余的连通分量。
点以访问图中其余的连通分量。
在在在在图图图图结结结结构构构构中中中中,如如如如果果果果有有有有回回回回路路路路存存存存在在在在,那那那那么么么么一一一一个个个个顶顶顶顶点点点点被被被被访访访访问问问问之之之之后,有可能沿回路又回到该顶点。
后,有可能沿回路又回到该顶点。
后,有可能沿回路又回到该顶点。
后,有可能沿回路又回到该顶点。
在在在在图图图图结结结结构构构构中中中中,一一一一个个个个顶顶顶顶点点点点可可可可以以以以和和和和其其其其它它它它多多多多个个个个顶顶顶顶点点点点相相相相连连连连,当当当当这这这这样的顶点访问过后,存在如何选取下一个要访问的顶点的问题。
样的顶点访问过后,存在如何选取下一个要访问的顶点的问题。
样的顶点访问过后,存在如何选取下一个要访问的顶点的问题。
样的顶点访问过后,存在如何选取下一个要访问的顶点的问题。
图的遍历通常有深度优先搜索和广度优先搜索两种方式图的遍历通常有深度优先搜索和广度优先搜索两种方式图的遍历通常有深度优先搜索和广度优先搜索两种方式图的遍历通常有深度优先搜索和广度优先搜索两种方式1数据结构数据结构7.3.17.3.1深度优先搜索深度优先搜索V1V2V4V5V8V3V6V7V1V2V4V8V5V3V6V712345678visited11011001遍历顺序:
遍历顺序:
非连通的图重复上述过程非连通的图重复上述过程,使每个顶点均被访问使每个顶点均被访问V1V2stackV4V8V5假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可从图中某个顶点从图中某个顶点从图中某个顶点从图中某个顶点vvvv出发,访问此顶点,然后依次从出发,访问此顶点,然后依次从出发,访问此顶点,然后依次从出发,访问此顶点,然后依次从vvvv的未被访问的未被访问的未被访问的未被访问的邻接点出发深度优先遍历图,直至图中所有和的邻接点出发深度优先遍历图,直至图中所有和的邻接点出发深度优先遍历图,直至图中所有和的邻接点出发深度优先遍历图,直至图中所有和vvvv有路径相通有路径相通有路径相通有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作起始点,重复上述过程,直至图中中一个未曾被访问的顶点作起始点,重复上述过程,直至图中中一个未曾被访问的顶点作起始点,重复上述过程,直至图中中一个未曾被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。
所有顶点都被访问到为止。
所有顶点都被访问到为止。
所有顶点都被访问到为止。
2数据结构数据结构深度优先搜索算法深度优先搜索算法BooleanvisitedMAX;BooleanvisitedMAX;Status(*Status(*VisitFunc)(intVisitFunc)(intv);v);voidvoidDFSTraverse(GraphDFSTraverse(GraphG,Status(*G,Status(*visit)(intvisit)(intv)v)VisitFuncVisitFunc=visit;=visit;for(v=0;vfor(v=0;vG.vexnumG.vexnum;+v)visitedv=FALSE;+v)visitedv=FALSE;for(v=0;vfor(v=0;vG.vexnumG.vexnum;+v);+v)if(!
visitedv)DFS(G,v);if(!
visitedv)DFS(G,v);voidDFS(GraphG,voidDFS(GraphG,intintv)v)visitedv=TRUE;visitedv=TRUE;VisitFunc(vVisitFunc(v););for(w=for(w=FirstAdjVex(GFirstAdjVex(G,v);w;w=,v);w;w=NextAdjVex(G,v,wNextAdjVex(G,v,w)if(!
visitedw)DFS(G,w);if(!
visitedw)DFS(G,w);3数据结构数据结构分析上述算法,在遍历时,对图中每个顶点至多调用一次分析上述算法,在遍历时,对图中每个顶点至多调用一次分析上述算法,在遍历时,对图中每个顶点至多调用一次分析上述算法,在遍历时,对图中每个顶点至多调用一次DFSDFSDFSDFS函数,因为一旦某个顶点被标志成已被访问,就不再从它出发函数,因为一旦某个顶点被标志成已被访问,就不再从它出发函数,因为一旦某个顶点被标志成已被访问,就不再从它出发函数,因为一旦某个顶点被标志成已被访问,就不再从它出发进行搜索。
因此,遍历图的过程实质上是对每个顶点查找其邻进行搜索。
因此,遍历图的过程实质上是对每个顶点查找其邻进行搜索。
因此,遍历图的过程实质上是对每个顶点查找其邻进行搜索。
因此,遍历图的过程实质上是对每个顶点查找其邻接点的过程。
其耗费的时间则取决于所采用的存储结构。
当用接点的过程。
其耗费的时间则取决于所采用的存储结构。
当用接点的过程。
其耗费的时间则取决于所采用的存储结构。
当用接点的过程。
其耗费的时间则取决于所采用的存储结构。
当用二维数组表示邻接矩阵图的存储结构时,查找每个顶点的邻接二维数组表示邻接矩阵图的存储结构时,查找每个顶点的邻接二维数组表示邻接矩阵图的存储结构时,查找每个顶点的邻接二维数组表示邻接矩阵图的存储结构时,查找每个顶点的邻接点所需时间为点所需时间为点所需时间为点所需时间为O(nO(nO(nO(n2222),其中其中其中其中nnnn为图中顶点数。
而当以邻接表作图为图中顶点数。
而当以邻接表作图为图中顶点数。
而当以邻接表作图为图中顶点数。
而当以邻接表作图的存储结构时,找邻接点所需时间为的存储结构时,找邻接点所需时间为的存储结构时,找邻接点所需时间为的存储结构时,找邻接点所需时间为O(e)O(e)O(e)O(e),其中其中其中其中eeee为无向图中边为无向图中边为无向图中边为无向图中边的数或有向图中弧的数。
由此,当以邻接表作存储结构时,深的数或有向图中弧的数。
由此,当以邻接表作存储结构时,深的数或有向图中弧的数。
由此,当以邻接表作存储结构时,深的数或有向图中弧的数。
由此,当以邻接表作存储结构时,深度优先搜索遍历图的时间复杂度为度优先搜索遍历图的时间复杂度为度优先搜索遍历图的时间复杂度为度优先搜索遍历图的时间复杂度为O(n+e)O(n+e)O(n+e)O(n+e)。
4数据结构数据结构7.3.27.3.2广度优先搜索广度优先搜索广广广广度度度度优优优优先先先先搜搜搜搜索索索索(Breadth_FirstBreadth_FirstBreadth_FirstBreadth_FirstSearchSearchSearchSearch)遍遍遍遍历历历历类类类类似似似似于于于于树树树树的的的的按按按按层次遍历的过程。
层次遍历的过程。
层次遍历的过程。
层次遍历的过程。
假设从图中某顶点假设从图中某顶点假设从图中某顶点假设从图中某顶点vvvv出发,在访问了出发,在访问了出发,在访问了出发,在访问了vvvv之后依次访问之后依次访问之后依次访问之后依次访问vvvv的各个未的各个未的各个未的各个未曾访问过和邻接点,然后分别从这些邻接点出发依次访问它们曾访问过和邻接点,然后分别从这些邻接点出发依次访问它们曾访问过和邻接点,然后分别从这些邻接点出发依次访问它们曾访问过和邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使的邻接点,并使的邻接点,并使的邻接点,并使“先被访问的顶点的邻接点先被访问的顶点的邻接点先被访问的顶点的邻接点先被访问的顶点的邻接点”先于先于先于先于“后被访问后被访问后被访问后被访问的顶点的邻接点的顶点的邻接点的顶点的邻接点的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻被访问,直至图中所有已被访问的顶点的邻被访问,直至图中所有已被访问的顶点的邻被访问,直至图中所有已被访问的顶点的邻接点都被访问到。
若此时图中尚有顶点未被访问,则另选图中接点都被访问到。
若此时图中尚有顶点未被访问,则另选图中接点都被访问到。
若此时图中尚有顶点未被访问,则另选图中接点都被访问到。
若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作起始点,重复上述过程,直至图中所一个未曾被访问的顶点作起始点,重复上述过程,直至图中所一个未曾被访问的顶点作起始点,重复上述过程,直至图中所一个未曾被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。
换句话说,广度优先搜索遍历图的过有顶点都被访问到为止。
换句话说,广度优先搜索遍历图的过有顶点都被访问到为止。
换句话说,广度优先搜索遍历图的过有顶点都被访问到为止。
换句话说,广度优先搜索遍历图的过程中以程中以程中以程中以vvvv为起始点,由近至远,依次访问和为起始点,由近至远,依次访问和为起始点,由近至远,依次访问和为起始点,由近至远,依次访问和vvvv有路径相通且路径有路径相通且路径有路径相通且路径有路径相通且路径长度为长度为长度为长度为1,2,1,2,1,2,1,2,的顶点。
的顶点。
的顶点。
的顶点。
5数据结构数据结构V1V2V4V5V8V3V6V7V1V2V3V4V5V6V7V812345678visited10000000V2V3Queue遍历顺序:
遍历顺序:
非连通的图重复上述过程非连通的图重复上述过程非连通的图重复上述过程非连通的图重复上述过程,使每个顶点均被访问。
使每个顶点均被访问。
使每个顶点均被访问。
使每个顶点均被访问。
和深度优先搜索类似,在遍历的过程中也需要一个访问标和深度优先搜索类似,在遍历的过程中也需要一个访问标和深度优先搜索类似,在遍历的过程中也需要一个访问标和深度优先搜索类似,在遍历的过程中也需要一个访问标志数组。
志数组。
志数组。
志数组。
并且为了顺次访问路径长度为并且为了顺次访问路径长度为并且为了顺次访问路径长度为并且为了顺次访问路径长度为22、33、的顶点,需附设队列以存的顶点,需附设队列以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遍历