[자료구조] 너비 우선 탐색(BFS), 깊이 우선 탐색(DFS)
·
개발/자료구조
1. 너비 우선 탐색(Breadth-first-Search)[BFS] 너비우선 탐색은 트리를 가로질러서 순회한다. 예시) 루트 -> 루트의 자식들 -> 루트의 자식들의 자식들 아래로 내려가기전에 같은 레벨에 있는 모든 노드들을 거쳐가는것이고 큐를 이용한다. 2. 깊이 우선 탐색(Depth-first-Search)[DFS] 형제 노드로 넘어가기전에 수직으로 트리의 끝까지 내려간다. (1) 전위 탐색 : 왼쪽을 모두 순회한 다음 오른쪽 순회 (2) 후위 탐색 : 루트가 가장 마지막에 순회한다 -> 거꾸로 순회한다. (3) 중위 탐색 : 먼저 왼쪽 전체를 순회하고 노드를 방문하고 그다음 오른쪽 순회 3. 너비우선과 깊이우선 사용 시간 복잡도는 둘다 같지만 트리에 따라 공간복잡도가 다르다. 완전히 펼쳐져서 넓게..