- 트리 순회
: 그래프 순회의 일종으로 각 노드를 정확히 한 번씩 방문하는 과정
: DFS, BFS로 탐색할 수 있으며, DFS 탐색의 경우 전위, 중위, 후위 순회가 있음
1) 전위 순회 (NLR)
# 전위 순회 (NLR)
def preorder(node):
if node is None:
return
print(node.val)
preorder(node.left)
preorder(node.right)
2) 중위 순회 (LNR)
# 중위 순회 (LNR)
def inorder(node):
if node is None:
return
inorder(node.left)
print(node.val)
inorder(node.right)
3) 후위 순회 (LRN)
# 후위 순회 (LRN)
def postorder(node):
if node is None:
return
postorder(node.left)
postorder(node.right)
print(node.val)
같은 순회 매커니즘을 반복 구조로 구현할 수도 있지만, 트리의 재귀적 특성상 재귀 표현이 더 간결하고 직관적임.
'Programming > #Python' 카테고리의 다른 글
[자료구조] 힙(Heap) 연산 - 삽입/추출 구현하기 (Python) (0) | 2021.07.02 |
---|---|
[Python] 모듈과 활용 (1) (실습 결과 포함) (0) | 2021.01.23 |
[Python] 함수와 입출력 (fin) (실습 결과 포함) (0) | 2021.01.17 |
[Python] 함수와 입출력 (2) (실습 결과 포함) (0) | 2021.01.14 |
[Python] 함수와 입출력 (1) (실습 결과 포함) (0) | 2021.01.13 |