建立一个无向图的邻接矩阵,输出该图的邻接矩阵,并对该图进行深度优先搜索遍历python
时间: 2024-04-29 12:27:04 浏览: 101
输出以邻接表为存储结构的无向图g的各顶点的度.zip
好的,您可以使用以下代码来建立一个无向图的邻接矩阵并进行深度优先搜索遍历:
```python
# 定义邻接矩阵
adj_matrix = [
[0, 1, 0, 1, 1],
[1, 0, 1, 0, 1],
[0, 1, 0, 1, 0],
[1, 0, 1, 0, 1],
[1, 1, 0, 1, 0]
]
# 定义深度优先搜索函数
def dfs(node, visited, adj_matrix):
visited[node] = True
print(node, end=' ')
for i in range(len(adj_matrix[node])):
if adj_matrix[node][i] == 1 and visited[i] == False:
dfs(i, visited, adj_matrix)
# 初始化 visited 矩阵
visited = [False] * len(adj_matrix)
# 从第一个节点开始深度优先遍历
dfs(0, visited, adj_matrix)
```
这个代码中,我们使用了邻接矩阵来描述图中的节点之间的关系。邻接矩阵是一个二维数组,每个元素表示两个节点之间是否有一条边。在本例中,第一个节点和第二个节点、第一个节点和第四个节点、第一个节点和第五个节点之间分别有一条边,所以邻接矩阵的第一行第二列、第一行第四列、第一行第五列都是 1。在深度优先搜索函数中,我们首先将访问过的节点标记为已访问,并输出该节点,然后遍历该节点所有邻居节点,如果邻居节点未被访问过,则递归调用深度优先搜索函数来访问该节点。最后,我们从第一个节点开始进行深度优先搜索遍历。
阅读全文