Tree 그래프 이론적 정의 : Tree는 연결된 그래프이며 Cycle이 없음, Root가 있으며 그와 연결된 subtree로 구성된 개체
Tree의 종류 : Rooted Tree/Unrooted Tree, Ordered Tree/Unordered Tree, Directed Tree/Undirected Tree, Binary Tree, k-ary Tree
Ordered Tree/Unordered Tree는 Rooted, Directed Tree/Undirected Tree는 Unrooted
Binary Tree도 Rooted Tree, 한 개의 노드에서 child 노드의 개수가 최대 2개
K-ary Tree는 각 노드에 k이하의 child 노드가 있는 트리
Tree에서 사용되는 전문 용어 (taxonomy)
- root, subtree, parents, child, sibling, depth/height, leaf node, internal node, degree, Least Common Ancestor (최단 공통 조상)
internal node != leaf node
degree(차수) : Rooted Tree에서는 child 개수/ Unrooted 에서는 연결된 node들 개수
leaf node는 degree가 0
LCA(Least Common Ancestor) : 특정 노드끼리의 가장 가까운 parent 노드 (최단 공통 조상)
트리에 대한 기본 연산
ㆍboolean parents(a, b) : a의 부모가 b인가?
ㆍnodes find_child(a) : a의 자식을 모두 찾기
ㆍnodes sibling(a) : a의 형제 노드 모두 찾기
ㆍnodes root(a) : a가 속한 트리의 root 노드 찾기
ㆍnodes path(a, b) : a에서 b로 가는 길에 있는 모든 노드
ㆍnodes leaf_nodes(T) : 트리 T의 모든 leaf node 출력
ㆍnodes scanning(T) : 트리 T에 있는 노드를 모두 traverse
Forest = A set of Trees
사분 트리(Quad Tree) : 공간을 순환적으로 분해하는 특성을 갖는 계층적 자료구조. 표현하려는 자료의 유형/공간 분해 과정의 원칙/해상도에 따라 구분
- 표현하려는 자료의 유형 : 사분 트리가 곡선이나 표면과 같이 개체의 경계를 표현하는 경우, 영역이나 볼륨과 같이 개체의 내부를 표현하는 경우
- 공간 분해 원칙 : 각 레벨마다 공간을 일정한 크기의 동일한 부분들로 분해, 입력 자료값에 따라 서로 다른 크기의 공간으로 분해
- 분해의 해상도 : 분해 과정을 몇번이나 적용하는가? 고정/동적
사분할씩 쪼개면서 만드는 트리
'Data Structure' 카테고리의 다른 글
Tree Structure 노트6 - AVL Tree (0) | 2022.04.09 |
---|---|
Tree Structure 노트5 - K-ary Tree, Selection Tree (0) | 2022.04.08 |
Tree Structure 노트4 - 집합연산트리, Segment Tree (0) | 2022.04.07 |
Tree Structure 노트3 - Binary Search Tree (0) | 2022.04.05 |
Tree Structure 노트2 - Binary Tree (0) | 2022.04.04 |
댓글