上文中我们讲到了BFS与最短路径的关系。本文,我们聊一聊图的connected components。中文翻译好像是 等价类。
等价类的意思是只要节点之间存在连通的边,则这些节点都被分在同一个类中。简单点说即图可以被分为多少块 pieces。
如上图所示,这个图有三块。
其实算法很简单。如下所示:
- for i=1:N
-if node i is not explored
-BFS(G,i)
我们说BFS(G,i) 肯定能找到以i为起点,相连的所有其他节点。因此,如果我们把每个节点都当做节点搜索,必然能够找到图的所有 pieces。道理上很清楚明白。
注:从这个道理上来看,我们把BFS算法换成DFS算法也该经过也是一样的哈。这是我们目前还没讲DFS而已。