以下の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は*検索*アルゴリズムですが、あなたが探しているターゲット*がありません... –
レスポンスありがとうございました.. visited = [] def dfs(グラフ、ノード、訪問中): if nodeで訪問していない:グラフにおけるnの visited.append(ノード) [ノード]: DFS(グラフ、N、訪問) DFS(グラフ1、 'A' は、訪問) プリント(訪問) – Vicky