Tree
개념
- Stack, Queue와 같은 선형 자료구조는 연속적으로 값이 분포하지만 Tree는 비선형, 계층적 자료 구조를 가짐
- 노드들 간에 부모-자식 관계를 가짐
- Linked List와 유사한 구조를 가지지만 tree의 노드의 링크 필드는 자식과 연결됨
- 일반적인 경우 자식 노드의 개수에 제한은 없음
- 이진 트리(Binary Tree)는 최대 2개의 자식만 가짐
Level
- 부모-자식 관계를 1 단계 떨어진 관계로 볼때 tree의 층위의 개수
- 특정 노드가 루트 노드의 자식 노드라면 Level 2에 위치한 것임
(루트 노드는 Level 1)
Height
Degree
Forest
구성 요소
Node
Parent Node
Child Node
Sibling Node
Ancestor Node
- 특정 노드로부터 루트 노드까지 연속적으로 부모 관계에 있는 노드들의 집합
Descendant Node
- 특정 노드로부터 리프 노드까지 연속적으로 자식관계에 있는 노드들의 집합
Root
- 시작 지점 노드
- 다른 모든 노드들의 조상 노드
Subtree
Terminal Node (Leaf)
- tree의 마지막에 위치한 노드
- 자식 노드를 갖지 않는 노드
Nonterminal Node