DFS raziskuje graf z gibanjem čim dlje po vsakem razvejanju, preden se vrne. Uporablja sklad (pogosto klic sklada prek rekurzije) in obišče polno pot pred raziskovanjem alternativ.
Ideja
Iz vozlišča se rekurzivno potopi v neobiskanega soseda in nadaljuje globoko; ko je obtičan, se vrne in poskuša drugo vejo.
Primer
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
