DFS explorează un graf mergând cât mai adânc posibil de-a lungul fiecărei ramuri înainte de a se întoarce. Folosește o stivă (adesea stiva apelurilor prin recursiune) și vizitează o cale completă înainte de a explora alternative.
Ideea
Dintr-un nod, recursați într-un vecin nevizitat și continuați adânc; când rămâneți blocat, retrageți-vă și încercați o altă ramură.
Exemplu
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
