DFS tutkii graafia menemällä niin syvälle kuin mahdollista jokaisen haaran mukaisesti ennen kuin perääntyy. Se käyttää pinoa (usein kutsupinoa rekursion kautta) ja vierailee täydessä polulla ennen vaihtoehtojen tutkimista.
Idea
Solmusta käsin recursoidaan vierailemattomaan naapuriin ja jatketaan syvälle; kun jumiin jää, peräännetään ja yritetään toista haaraa.
Esimerkki
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
