python 深度优先搜索算法
时间: 2023-11-10 21:02:04 浏览: 110
深度优先搜索(Depth-First Search,DFS)是一种用于遍历或搜索树或图的算法。它从根节点开始,沿着深度遍历树的分支,直到找到目标节点或到达叶子节点为止。如果遇到叶子节点仍未找到目标节点,则回溯到上一个节点,继续遍历其他分支。
下面是一个使用递归实现的基本的深度优先搜索算法(对于图而言,需要额外考虑访问过的节点):
```python
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start)
for neighbor in graph[start]:
if neighbor not in visited:
dfs(graph, neighbor, visited)
```
其中,`graph` 是图的邻接表表示,`start` 是起始节点,`visited` 是已访问过的节点集合。
阅读全文