정답
| |
타인의 답
| |
참고
1. 전위 순회 (Pre-order Traversal)
전위 순회에서는 각 노드를 방문하는 순서가 루트-왼쪽-오른쪽입니다. 즉, 먼저 루트를 방문하고, 그 다음에 왼쪽 서브트리를 방문한 후, 오른쪽 서브트리를 방문합니다.
순회 순서:
- 현재 노드를 방문한다.
- 왼쪽 서브트리를 전위 순회한다.
- 오른쪽 서브트리를 전위 순회한다.
예시:
A
/ \
B C
/ \ / \
D E F G
전위 순회: A B D E C F G
2. 중위 순회 (In-order Traversal)
중위 순회에서는 각 노드를 방문하는 순서가 왼쪽-루트-오른쪽입니다. 즉, 왼쪽 서브트리를 먼저 방문하고, 그 다음에 루트를 방문한 후, 오른쪽 서브트리를 방문합니다.
순회 순서:
- 왼쪽 서브트리를 중위 순회한다.
- 현재 노드를 방문한다.
- 오른쪽 서브트리를 중위 순회한다.
예시:
A
/ \
B C
/ \ / \
D E F G
중위 순회: D B E A F C G
3. 후위 순회 (Post-order Traversal)
후위 순회에서는 각 노드를 방문하는 순서가 왼쪽-오른쪽-루트입니다. 즉, 왼쪽 서브트리를 먼저 방문하고, 그 다음에 오른쪽 서브트리를 방문한 후, 루트를 방문합니다.
순회 순서:
- 왼쪽 서브트리를 후위 순회한다.
- 오른쪽 서브트리를 후위 순회한다.
- 현재 노드를 방문한다.
예시:
A
/ \
B C
/ \ / \
D E F G
후위 순회: D E B F G C A
4. 층별 순회 (Level-order Traversal)
층별 순회에서는 트리를 레벨별로 방문합니다. 즉, 트리의 루트부터 시작하여, 같은 레벨의 노드를 왼쪽에서 오른쪽 순으로 방문합니다. 이 탐색 방법은 주로 큐 자료구조를 이용해 구현됩니다.
순회 순서:
- 루트를 큐에 넣는다.
- 큐가 빌 때까지 다음을 반복한다:
- 큐에서 노드를 하나 꺼내 방문한다.
- 그 노드의 자식들을 왼쪽에서 오른쪽 순으로 큐에 넣는다.
예시:
A
/ \
B C
/ \ / \
D E F G
층별 순회: A B C D E F G