用Python写一个深度优先搜索算法
时间: 2023-05-21 20:06:04 浏览: 116
深度优先搜索算法通常被用于图遍历和状态空间搜索等领域。下面是一个用 Python 实现的深度优先搜索算法的示例:
```
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start)
for next in graph[start] - visited:
dfs(graph, next, visited)
return visited
# 示例用法:
graph = {'A': {'B', 'C'},
'B': {'A', 'D', 'E'},
'C': {'A', 'F'},
'D': {'B'},
'E': {'B', 'F'},
'F': {'C', 'E'}}
dfs(graph, 'A')
```
该代码定义了一个名为 dfs 的函数,接受一个 graph(表示图的邻接表)、一个 start(表示起始节点) 和一个 visited(表示已访问的节点集合)作为参数。默认的 visited 值为 None,即第一次调用 dfs 函数时,visited 将被初始化为空集合。
函数内部首先将起始节点 start 加入 visited 集合中,并输出其值。接着遍历与该节点相邻且未被访问过的节点,对这些节点递归调用 dfs 函数,直到所有节点都被访问完毕。
最后返回 visited 集合,表示所有被访问过的节点。
阅读全文