DFS prozkoumává graf tak, že jde co nejhlouběji podél každé větve, než se vrátí. Používá zásobník (často zásobník volání prostřednictvím rekurze) a navštíví celou cestu, než zkoumá alternativy.
Myšlenka
Z uzlu se rekurzivně přejde do nenavštíveného souseda a pokračuje se hlouběji; když se zacyklí, vrátí se a zkusí další větev.
Příklad
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
