Ce code est donné en python official essays on graph theory. Voici le code:Est-ce que ce code python utilise Depth First Search (DFS) pour trouver tous les chemins?
def find_all_paths(graph, start, end, path=[]):
path = path + [start]
if start == end:
return [path]
if not graph.has_key(start):
return []
paths = []
for node in graph[start]:
if node not in path:
newpaths = find_all_paths(graph, node, end, path)
for newpath in newpaths:
paths.append(newpath)
return paths
Je ne suis pas habile à python comme je l'ai pas encore eu assez de pratiquer et y lire. Pouvez-vous s'il vous plaît expliquer le code en reliant cela au concept enfant-frère dans le diagramme DFS? Merci.
'paths.extend (newpaths)' –
Pour référence, je ferais toujours 'start not in graph' plutôt que' not graph. has_key (start) '(Je suppose que' graph' est un 'dict' ou similaire). –
Chris, oui 'graph' est un' dict'. – Pupil