노드로 이루어진 자료 구조
루트 노드(root node): 부모가 없는 노드, 트리는 하나의 루트 노드만을 가진다.
단말 노드(leaf node): 자식이 없는 노드, ‘말단 노드’ 또는 ‘잎 노드’라고도 부른다.
내부(internal) 노드: 단말 노드가 아닌 노드
간선(edge): 노드를 연결하는 선 (link, branch 라고도 부름)
형제(sibling): 같은 부모를 가지는 노드
노드의 크기(size): 자신을 포함한 모든 자손 노드의 개수
노드의 깊이(depth): 루트에서 어떤 노드에 도달하기 위해 거쳐야 하는 간선의 수
노드의 레벨(level): 트리의 특정 깊이를 가지는 노드의 집합
노드의 차수(degree): 하위 트리 개수 / 간선 수 (degree) = 각 노드가 지닌 가지의 수
트리의 차수(degree of tree): 트리의 최대 차수
트리의 높이(height): 루트 노드에서 가장 깊숙히 있는 노드의 깊이
각 노드가 최대 두 개의 자식을 갖는 트리
같은 층에 있는 노드를 우선적으로 탐색
10 -> 6 -> 15 -> 3 -> 8 -> 20
queue를 이용하여 구현
깊이에 따라 노드들을 탐색
stack 데이터 구조를 사용
주로 반복문을 활용하거나, 재귀문을 통하여 구현
Root - Left - Right
루트 - 왼쪽 - 오른쪽 순으로 순회

Left - Root - Right
왼쪽 - 루트 - 오른쪽 순으로 순회

Left - Right - Root
왼쪽 - 오른쪽 - 루트 순으로 순회
