DFS와 BFS는 그래프(그 중에서 특히 트리)를 탐색하는 방법에서 나온 것이다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종을 말한다.그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말한다.깊이 우선 탐색 (DFS : Depth-First Search)한 루트로 최대한 깊이 내려가 확인한 뒤, 더 이상 깊이 갈 곳이 없다면 다시 돌아가 다른 루트로 탐색한다. DFS는 스택(Stack)이나 재귀함수로 구현한다. 구체적인 동작 과정은 다음과 같다.탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다.스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리를 한다. 그리고..