DFS utforskar en graf genom att gå så långt som möjligt längs varje gren innan du backtrackar. Den använder en stack (ofta call-stacken via rekursion) och besöker en full väg innan den utforskar alternativ.
Idén
Från en nod, rekursera in i en obesökt granne, och fortsätt djupt; när du är fast, backa upp och prova en annan gren.
Exempel
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
