DFS egy gráfot úgy vizsgál, hogy minden ág mentén olyan mélyre megy, amennyire lehetséges, mielőtt visszalépne. Egy stack-et (gyakran a hívási stack-et rekurzióval) használ, és egy teljes útvonalat meglátogat, mielőtt alternatívákat fedezne fel.
Az ötlet
Egy csomópontból recurse egy nem látogatott szomszédba, és folytassa mélyre; amikor beragad, lépjen vissza és próbálja meg egy másik ágat.
Példa
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
