count connected components
时间: 2023-04-21 08:06:29 浏览: 185
您好!计算连通分量(count connected components)通常是指在一个无向图中计算有多少个联通块(connected component)。以下是一种求解连通分量的简单算法:
1. 初始化一个数组 visited,用于记录每个节点是否已被遍历过,初始值为 false。
2. 遍历图中的每个节点,对于每个未被遍历过的节点,执行以下步骤:
- 将该节点标记为已遍历(visited[node] = true)。
- 对该节点的所有邻居节点进行递归访问,若邻居节点未被遍历,则执行步骤 2。
3. 当所有节点都被遍历后,连通分量的个数即为遍历的次数。
以下是一个示例 Python 代码实现:
```python
def count_connected_components(graph):
visited = [False] * len(graph)
count = 0
def dfs(node):
visited[node] = True
for neighbor in graph[node]:
if not visited[neighbor]:
dfs(neighbor)
for node in range(len(graph)):
if not visited[node]:
dfs(node)
count += 1
return count
```
其中,`graph` 是一个邻接表表示的无向图,例如:
```python
graph = {
0: [1, 2],
1: [0],
2: [0, 3],
3: [2],
4: [5],
5: [4]
}
```
在此图中,节点 0、1、2、3 组成了一个连通分量,节点 4、5 分别为一个连通分量,因此总共有 2 个连通分量。运行 `count_connected_components(graph)` 会返回 2。
阅读全文