[Algorithm] 트리와 트리순회
Summary
트리의 개념과 트리 순회에 대하여 알아봅시다.
이진트리의 순회(traversal)
- 순회 : 이진 트리의 모든 노드를 방문하는 일
순회를 위한 작업 3가지
D
: 현재 노드를 방문하여 데이터를 읽는 작업L
: 현재 노드의 ==왼쪽== 서브트리로 이동하는 작업R
: 현재 노드의 ==오른쪽== 서브트리로 이동하는 작업
순회 종류 4가지 (노드 방문 순서에 따라)
- 전위 순회 (Preorder Traversal)
- 중위 순회 (Inorder Traversal)
- 후위 순회 (Postorder Traversal)
- 레벨 오더 순회(level-order Traversal)
1. 전위 순회 (Preorder Traversal)
- 현재 노드를 방문하여 데이터를 읽는 작업
D
을 가장 먼저 수행하여DLR
의 순서로 순회하는 방법
2. 중위 순회 (Inorder Traversal)
- 현재 노드를 방문하여 데이터를 읽는 작업
D
을L
과R
의 사이에 수행하여LDR
의 순서로 순회하는 방법
3. 후위 순회 (Postorder Traversal)
- 현재 노드를 방문하여 데이터를 읽는 작업
D
을 가장 나중에 수행하여LRD
의 순서로 순회하는 방법
4. 레벨 오더 순회(level-order Traversal)
- 레벨 순으로 방문, 동일 레벨에서는 왼쪽에서 오른쪽 순서로
- 큐(queue)를 이용하여 구현
❗️문제
- 전위, 중위, 후위, 레벨 오더 순회 경로 구하기
답
전위 순회 (Preorder Traversal)
A - B - D - H - I - E - J - K - C - F - L - G
중위 순회 (Inorder Traversal)
H - D - I - B - J - E - K - A - L - F - C - G
후위 순회 (Postorder Traversal)
H - I - D - J - K - E - B - L - F - G - C - A
레벨 오더 순회(level-order Traversal)
A - B - C - D - E - F - G - H - I - J - K - L
A - B - D - H - I - E - J - K - C - F - L - G
중위 순회 (Inorder Traversal)
H - D - I - B - J - E - K - A - L - F - C - G
후위 순회 (Postorder Traversal)
H - I - D - J - K - E - B - L - F - G - C - A
레벨 오더 순회(level-order Traversal)
A - B - C - D - E - F - G - H - I - J - K - L