第33节 图的遍历

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pt_raspi_fresher/article/details/87647783

-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.

第一:

?  定义
   从图中的某一顶点出发 , 沿着一些边访遍图中所有的顶点 , 使得每个顶点仅被访问一次 。

? 分类
  深度优先搜索  DFS (Depth First Search)
  广度优先搜索  BFS (Breadth First Search)

第二:

深度优先遍历

关键 :
整个过程需要一个标记顶点是否被访问过的辅助数组visited[]

 

? 算法描述
    访问起始顶点v 
    •  当v   还有邻接顶点未访问时
         –  深度遍历未访问过的邻接顶点w  
    •  当v   的所有邻接顶点都被访问时
         –  若图中所有顶点均已访问
             »  算法结束
        –  若图中还有未访问的顶点
            »  以未访问顶点作为起始顶点深度遍历

第三:

广度优先遍历

关键 :
整个过程需要一个标记顶点是否被访问过的辅助数组visited[]

? 算法描述
. 1.  访问起始顶点v0
. 2.  依次访问v v 0 0 的各个邻接点v01 ,v02 , … ,v 0x
. 3.  假设最近一次访问的顶点依次为v i1 ,v i2  , … , v iy , 则依次访问v i1 ,v i2 , … , v iy 的未被访问的邻接点
. 4.  重复 3,直到所有顶点均被访问

广度优先遍历是一种层次遍历 , 需要借助队列实现

第四:

图遍历算法的实现

小结:

遍历是图结构的基础算法 , 也是其它图算法的基础.

猜你喜欢

转载自blog.csdn.net/pt_raspi_fresher/article/details/87647783