写一个深度优先算法的代码
时间: 2023-03-19 09:20:55 浏览: 47
答:def dfs(node):
# 访问当前节点
visit(node)
# 访问当前节点所有相邻节点
for n in node.neighbors:
if not n.visited:
dfs(n)
相关问题
写一个图论深度优先算法的代码
图论深度优先算法的代码:def DFS(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
for next in graph[start] - visited:
DFS(graph, next, visited)
return visitedgraph = {'A': set(['B', 'C']),
'B': set(['A', 'D', 'E']),
'C': set(['A', 'F']),
'D': set(['B']),
'E': set(['B', 'F']),
'F': set(['C', 'E'])}DFS(graph, 'A') # {'E', 'D', 'F', 'A', 'C', 'B'}
写一个深度优先搜索算法的代码
以下是一个深度优先搜索算法的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`表示一个字典,键是节点,值是与该节点相邻的节点集合。`start`表示从哪个节点开始搜索。`visited`表示已经访问过的节点集合,默认为空集合。这个算法使用递归实现,每次访问一个节点时,将其标记为已访问,并输出该节点的值。然后遍历该节点的邻居节点,如果邻居节点没有被访问过,则递归调用`dfs`函数。最后返回已经访问过的节点集合。