탐색에 대해 이해하려면 트리 구조를 먼저 살펴보는 것이 좋다. 트리(tree)는 나무가 가지치는 것처럼 생긴 "그래프"의 일종이다. 방향성(보통 위에서 아래)이 있는 비순환 그래프라고도 말하며, 루트 노드(최상위 노드), 부모-자식간의 노드 등이 존재한다. 여기서 말하는 노드는 정점이라고도 말하는데 특정 장소를 생각하면 된다. 이런 노드를 연결하는 것을 엣지(간선)이라 부르는데, 장소를 잇는 도로라고 생각하면 쉽다. 보통 트리는 다음과 같이 생긴 것을 의미한다. 이런 트리도 여러가지 조건 등을 붙이면서 특이한 종류의 트리를 만들 수 있는데, 우선 이 포스트에서는 그 것이 중점이 아니므로 깊게 다루지는 않을 것이다. (언젠가 다른 게시물에서 다룰 예정이다.) DFS(Depth First Search - 깊..