python DFS算法
时间: 2023-10-24 17:25:42 浏览: 90
DFS(Depth First Search,深度优先搜索)是一种常用的图遍历算法,它从一个起点开始,沿着一条路径不断深入,直到到达最深处或无法继续深入,然后返回上一层节点,继续向下遍历其他路径。
下面是使用 Python 实现 DFS 算法的示例代码:
```python
# 定义图的邻接表表示法
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
# DFS遍历函数
def dfs(node, visited):
visited.add(node)
print(node, end=' ')
for neighbor in graph[node]:
if neighbor not in visited:
dfs(neighbor, visited)
# 从节点A开始进行DFS遍历
dfs('A', set())
```
在上面的示例代码中,我们先定义了一个图的邻接表表示法,然后定义了一个 DFS 遍历函数 `dfs`,接着从节点 A 开始进行 DFS 遍历,输出遍历过的节点。
函数 `dfs` 中,我们首先将当前节点标记为已访问,然后输出节点值,接着遍历当前节点的所有邻居节点,对于每个未被访问过的邻居节点,递归调用 dfs 函数进行遍历。
注意,为了避免重复访问节点,我们使用了一个集合 `visited` 来保存已经访问过的节点。
阅读全文