dfs递归实现python
时间: 2023-08-24 14:06:11 浏览: 87
python 遍历二叉树的方法代码示例
DFS(深度优先搜索)的递归实现可以用以下 Python 代码实现:
```python
# 定义图的邻接表表示法
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
visited = set() # 用集合记录已经访问过的节点
def dfs(node):
visited.add(node) # 将当前节点标记为已访问
print(node, end=' ') # 输出当前节点
for next_node in graph[node]:
if next_node not in visited:
dfs(next_node) # 递归访问下一个节点
# 从图的起始节点开始搜索
dfs('A')
```
这段代码实现了从图的起始节点 A 开始进行深度优先搜索(DFS),并输出搜索的路径。其中,`graph` 变量定义了图的邻接表表示法,`visited` 变量用集合记录已经访问过的节点,`dfs()` 函数实现了递归访问节点的过程。在访问一个节点时,先将其标记为已访问,然后输出该节点,并递归地访问该节点的所有邻居节点。
阅读全文