Tree를 순회하는 방법에는 세가지가 있다.
1. Pre-order Traversal (전위순회법)
- Root node에서 시작하여
- 왼쪽 부 트리를 순회하고 가장 마지막의 부트리까지 순회한다
- 오른쪽 부 트리를 순회하고 가장 마지막의 부트리까지 순회한다.
DFS와 비슷한 논리라고 생각하면 쉽다.
Pseudocode: Pre_order
def pre_order(T):
if T is not null:
visit(T)
pre_order(T.left)
pre_order(T.right)
2. In-Order Traversal (중위 순회법)
- 트리의 가장 왼쪽 노드로 이동한다.
- 왼쪽 노드의 루트를 탐색한다.
- 루트의 오른쪽 노드를 탐색한다.
트리의 가장 왼쪽에 있는 노드부터 시작하여 탐색한다고 생각하면 이해가 쉽다.
def in_order(T):
if T is not null:
in_order(T.left)
visit(T)
in_order(T.right)
3. Post-order Traversal (후위순회)
- 현재 노드의 왼쪽 부트리에서 시작
- 현재 노드의 오른쪽 부트리로 이동
- 현재 노드 방문하여 처리
def post_order(T):
if T is not null:
post_order(T.left)
post_order(T.right)
visit(T)
'개발공부 > 개발' 카테고리의 다른 글
[python] 'ord' method를 사용해서 character를 정수로 나타내는 방법 (0) | 2021.05.19 |
---|---|
[algorithm] 시간 복잡도 계산 방법 + 표기법 (0) | 2021.05.13 |
Breadth First Search (BFS) - 너비 우선 탐색 (0) | 2021.02.28 |
Request param, query, body의 차이점 (0) | 2020.10.31 |
[Node.js] File System Module (fs 모듈) (0) | 2020.10.28 |