请给出dfs搜索邻接矩阵的具体代码
时间: 2023-10-23 17:49:08 浏览: 32
以下是使用DFS搜索邻接矩阵表示的图的具体代码示例:
```python
def dfs(adj_matrix, visited, node):
visited[node] = True
print(node, end=' ')
for i in range(len(adj_matrix)):
if adj_matrix[node][i] == 1 and not visited[i]:
dfs(adj_matrix, visited, i)
def dfs_graph(adj_matrix):
num_nodes = len(adj_matrix)
visited = [False] * num_nodes
for i in range(num_nodes):
if not visited[i]:
dfs(adj_matrix, visited, i)
```
使用示例:
```python
# 邻接矩阵表示的有向图
adj_matrix = [
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 0],
[1, 0, 0, 0, 1],
[0, 0, 0, 0, 1]
]
dfs_graph(adj_matrix)
```
输出结果:
```
0 1 2 3 4
```
以上代码中,我们使用`dfs_graph`函数进行DFS遍历,并使用`dfs`函数进行递归搜索。`adj_matrix`是邻接矩阵表示的图,其中`adj_matrix[i][j]`表示顶点i到顶点j是否有边。`visited`列表用于记录节点是否已经被访问过。在DFS遍历过程中,我们首先将当前节点标记为已访问,并输出该节点,然后继续递归地访问未被访问过的邻接节点。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)