由于图中可能存在网状结构,所以需要一个辅助数组 visited[] 来记录顶点是否被访问过

深度优先搜索

是一个递归定义的算法,需要栈作为辅助数据结构,有回溯。

深度优先生成树

image.png

广度优先搜索

BFS 是一个分层遍历的算法,没有回溯,需要用一个队列作为辅助数据结构。

单源最短路径

BFS 可以用于解决「非带权图」的单源最短路径问题。

广度优先生成树

image.png

图的连通行

可以通过图的遍历算法来检验图的连通性。

对于无向图:如果一次遍历可以访问所有节点,那么图是连通的
对于有向图:如果图不是「强连通的」,那么对一个连通分量进行遍历的时候,可能无法访问到所有的节点