DFS eksploruje graf, idąc tak głęboko, jak to możliwe, wzdłuż każdej gałęzi, zanim cofnie się. Używa stosu (często stosu wywołań za pośrednictwem rekurencji) i odwiedza pełną ścieżkę, zanim zbada alternatywy.
Idea
Z węzła, rekurencyjnie przejdź do nieodwiedzonego sąsiada i idź głębiej; gdy się utkniesz, cofnij się i spróbuj innej gałęzi.
Przykład
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
