DFS utforsker en graf ved å gå så dypt som mulig langs hver gren før du går tilbake. Den bruker en stack (ofte call stack via rekursjon) og besøker en full sti før den utforsker alternativer.
Ideen
Fra en node, rekurser inn i en ubesøkt nabo, og hold deg dypt; når du sitter fast, gå tilbake og prøv en annen gren.
Eksempel
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
