트리 순회는 그래프 순회의 일종으로,
트리 자료구조에서 각 노드를 한 번 방문하는 과정을 말한다.
DFS 또는 BFS로 탐색 하는데,
이진 트리에서 DFS는 노드의 방문 순서에 따라 크게 3가지 방식으로 구분된다.
1. 전위(Pre-Order) 순회(NLR)
현재 노드(N) -> 왼쪽 서브트리(L) -> 오른쪽 서브트리(R) 순서대로 탐색하는 방식이다
재귀 구조로 구현한 코드와 그래프는 아래와 같다
빨간색 선으로 이어진 순서대로(A - B - D - F - H - I -C -G -J ) 값이 출력된다.
2. 중위(In-Order) 순회
왼쪽 서브트리(L) -> 현재 노드(N) -> 오른쪽 서브트리(R) 순서대로 탐색하는 방식이다.
출력 순서는 D - B - G -E -H - A -C - I -F 이다
3. 후위(Post-Order) 순회
왼쪽 서브트리(L) -> 오른쪽 서브트리(R) -> 현재 노드(N) 순서대로 탐색하는 방식이다.
출력 순서는 D - G - H - E - B - I - F -C -A 순서이다.
트리 순회의 직관적인 이해가 필요한 사람은 아래 영상을 참조해도 좋겠다.
https://www.youtube.com/watch?v=bOZhvOc5xlQ&t=223s
'자료구조 & 알고리즘' 카테고리의 다른 글
비트 조작 - 부울 연산자, 비트 연산자, 2의 보수 개념 (0) | 2022.06.18 |
---|---|
[파이썬] 초기화 함수 / __init__() 메서드는 왜 쓰는 걸까? (0) | 2022.05.16 |
비전공자 코딩 테스트 공부법 - 파이썬 알고리즘 인터뷰 (0) | 2022.04.14 |
[자료구조 ] 이진 트리 - 그래프와 차이점, 명칭, 종류 (0) | 2022.04.07 |
[최단 경로 문제] 다익스트라 알고리즘(Leetcode 743) (0) | 2022.04.01 |