dfs算法python实现
时间: 2023-07-26 07:11:46 浏览: 75
好的,下面是一个简单的深度优先搜索(DFS)算法的 Python 实现:
```python
# 定义一个图结构,使用邻接表方式存储
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
# 定义一个函数实现 DFS
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start, end=' ')
for next_node in graph[start]:
if next_node not in visited:
dfs(graph, next_node, visited)
# 调用 dfs 函数
dfs(graph, 'A')
```
上面的代码中,我们定义了一个图结构,使用邻接表的方式存储。然后定义了一个函数 `dfs`,它接受三个参数:`graph` 表示待搜索的图,`start` 表示搜索的起点,`visited` 表示已经访问过的节点。在函数中,我们首先将起点加入到 `visited` 集合中,并输出该节点。然后遍历该节点的相邻节点,如果相邻节点没有被访问过,则递归调用 `dfs` 函数来访问该节点。最后,我们调用 `dfs` 函数,以节点 `A` 作为搜索起点。
该算法的时间复杂度为 $O(V+E)$,其中 $V$ 表示节点数,$E$ 表示边数。
阅读全文