您能否让我知道以下DFS代码中的不正确内容。它给出了正确的结果AFAIK,但我不知道它什么时候会失败。python中的深度优先搜索(DFS)代码
graph1 = {
'A' : ['B','S'],
'B' : ['A'],
'C' : ['D','E','F','S'],
'D' : ['C'],
'E' : ['C','H'],
'F' : ['C','G'],
'G' : ['F','S'],
'H' : ['E','G'],
'S' : ['A','C','G']
}
visited = []
def dfs(graph,node):
global visited
if node not in visited:
visited.append(node)
for n in graph[node]:
dfs(graph,n)
dfs(graph1,'A')
print(visited)
输出:
['A', 'B', 'S', 'C', 'D', 'E', 'H', 'G', 'F']
首先:不要使用'global's避免他们尽可能! –
DFS是* search *算法,但有*没有定义目标*您正在寻找... –
感谢您的回应.. visited = [] def dfs(graph,node,visited): if node不是在访问: visited.append(节点) 对于n在图形[节点]: DFS(图表中,n,访问) DFS(graph1, 'A',访问) 打印(受访) – Vicky