5.3.3 图的遍历与图的连通性

图的遍历算法可以用来判断图的连通性。

对于无向图来说,如果无向图是连通的,则从任一结点出发,仅需一次遍历就能够访问图中所有顶点;

如果无向图是非连通的,则从某一个顶点出发,一次遍历只能访问到该顶点所在连通分量的所有顶点,而对于图中其他连通分量的顶点无法通过这次遍历访问。

对于有向图来说,若从初始点到图中的每个顶点都有路径,则能够访问图中的所有顶点,否则不能访问到所有顶点。

故而在BFSTraverse()和DFSTraverse()中添加了第二个for循环,再选取初始点,继续进行遍历,以防止一次无法遍历图中所有顶点。

对于无向图,上述两个函数调用BFS(G,i)或DFS(G,i)的次数等于图中的连通分量树;

而对于有向图,则不是这样没因为一个连通的有向图分为强连通的和非强连通的,它的连通子图也分为强连通分量和非强连通分量,非强连通分量一次调用BFS(G,i)或DFS(G,i)无法访问到该连通分量的所有顶点。

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/jxq0816/article/details/52537201
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞