DFS udforsker en graf ved at gå så dybt som muligt langs hver gren, før den går tilbage. Den bruger en stak (ofte kaldestakken via rekursion) og besøger en fuld sti, før den udforsker alternativer.
Grundidéen
Fra en knude, rekursivt ind i en ubesøgt nabo, og fortsæt dybt; når du er fast, gå tilbage og prøv en anden gren.
Eksempel
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
