求解连通分量个数pta
时间: 2024-12-20 10:05:01 浏览: 8
在图论中,连通分量是指一个图中所有互相连通的顶点构成的子图。计算一个图的连通分量个数是图论中的一个基本问题。可以通过深度优先搜索(DFS)或广度优先搜索(BFS)来实现。
以下是一个使用DFS来计算连通分量个数的示例代码:
```python
def count_connected_components(graph):
visited = set()
count = 0
def dfs(node):
visited.add(node)
for neighbor in graph[node]:
if neighbor not in visited:
dfs(neighbor)
for node in graph:
if node not in visited:
dfs(node)
count += 1
return count
# 示例图
graph = {
'A': ['B', 'C'],
'B': ['A'],
'C': ['A'],
'D': ['E'],
'E': ['D'],
'F': []
}
print(count_connected_components(graph)) # 输出: 3
```
在这个示例中,`graph`是一个字典,表示图的邻接表。`count_connected_components`函数通过遍历每个节点,并使用DFS来标记已访问的节点,从而计算连通分量的个数。
阅读全文