邻接矩阵判断是否是连通图的代码
时间: 2023-10-23 10:26:41 浏览: 132
下面是使用深度优先搜索算法判断邻接矩阵表示的图是否是连通图的Python代码:
```python
def dfs(v, visited, graph):
visited[v] = True # 标记当前节点为已访问
for i in range(len(graph)):
if graph[v][i] == 1 and not visited[i]: # 如果节点v和节点i之间存在边且节点i未被访问
dfs(i, visited, graph) # 递归访问节点i
def is_connected(graph):
n = len(graph)
visited = [False] * n # 初始化所有节点为未访问
dfs(0, visited, graph) # 从任意一个节点开始访问
return all(visited) # 如果所有节点都被访问,则图是连通的
# 示例代码
graph = [[0, 1, 1, 0, 0],
[1, 0, 0, 1, 0],
[1, 0, 0, 1, 1],
[0, 1, 1, 0, 1],
[0, 0, 1, 1, 0]]
if is_connected(graph):
print("该图是连通图")
else:
print("该图不是连通图")
```
其中`dfs`函数实现深度优先搜索,`is_connected`函数判断邻接矩阵表示的图是否是连通图。在示例代码中,`graph`表示一个无向图的邻接矩阵,程序将从节点0开始访问整个图,并输出判断结果。
阅读全文