트리(Tree)
계층적 관계를 표현하는 자료구조이다.
트리의 활용
- 기업 조직도
- DBMS
- 디렉터리 구조
트리 관련 용어
노드(Node): 트리의 구성요소
간선(Edge): 노드와 노드를 연결하는 연결선
루트 노드(Root Node): 트리 구조에서 최상위에 존재하는 노드
단말 노드(Terminal Node): 아래로 또 다른 노드가 연결되어 있지 않은 노드
내부 노드(Internal Node): 단말 노드를 제외한 모든 노드
트리의 종류
이진트리(Binary Tree): 모든 노드가 최대 2개의 서브 노드를 가지는 트리
서브트리(Sub Tree): 기존 트리에서 하위의 트리구조
포화 이진 트리(Full Binary Tree): 트리의 각 레벨에 노드가 가득 차있는 이진트리
완전 이진 트리(Complete Binary Tree): 트리의 마지막 레벨을 제외한 모든 레벨이 가득 차있는 이진트리
이진 탐색 트리(Binary Search Tree): 효율적인 탐색을 위한 이진트리 기반의 자료구조
이진 트리의 추상 자료형
데이터
연산
init(): 초기화
isEmpty(): 비어있는지 확인
createTree(): 이진 트리 생성
getRoot(): 이진 트리의 루트 노드 반환
getCount(): 이진트리의 노드 개수 반환
getLeafCount(): 이친트리의 단말 노드 개수 반환
getHeight(): 이진 트리의 높이 반환
'개인 공부 > 자료구조' 카테고리의 다른 글
우선순위 큐(Priority Queue), 힙(Heap) (2) | 2023.01.25 |
---|---|
정렬(Sorting)#1 (0) | 2023.01.18 |
덱(Deque) (0) | 2023.01.04 |
큐(Queue) (0) | 2023.01.04 |
스택(Stack) (0) | 2023.01.04 |