DFS는 각 분기를 따라 가능한 한 깊이 들어간 뒤 backtrack(되돌아감)하는 방식으로 그래프를 탐색합니다. stack(스택)(흔히 재귀를 통한 call stack)을 사용하며 다른 대안을 탐색하기 전에 한 경로 전체를 방문합니다.
개념
한 노드에서 방문하지 않은 이웃으로 재귀하며 계속 깊이 들어가고, 막히면 되돌아가 다른 분기를 시도합니다.
예시
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
