DFS исследует граф, проходя как можно глубже по каждой ветви перед возвратом. Он использует стек (часто стек вызовов через рекурсию) и посещает полный путь перед исследованием альтернатив.
Идея
Из узла рекурсивно перейдите к непосещённому соседу и идите глубже; когда застрянете, вернитесь и попробуйте другую ветвь.
Пример
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
