반응형
Binary Tree
모든 노드가 최대 2개의 자식노드를 가질 수 있는 트리 자료구조
여러 종류의 binary tree에 대해 알아보자 !
Full Binary Tree : 정이진트리
모든 노드가 0개 혹은 2개의 자식노드를 가지고 있는 이진트리
L = B + 1
L = leaf nodes, B = branch(non leaf) nodes
Complete Binary Tree : 완전이진트리
왼쪽부터 차례대로 채워져있는 이진트리
모든 자식 노드가 채워질 경우 포화이진트리 가 된다
cf. 부모 노드가 항상 자식 노드보다 작은 형태의 완전 이진 트리가 최소 Heap 이다.
Perfect Binary Tree : 포화이진트리
모든 branch node가 2개의 자식노드를 가지고 있고, 모든 leaf 노드가 같은 level에 있는 이진트리
node 수 = 2ʰ - 1
h = tree height
Degenerate (or Pathological) Binary Tree : 사향이진트리
모든 branch node가 하나의 자식노드만을 가지는 트리
Linked List 성능과 동일
Balanced Binary Tree : 균형이진트리
모든 노드의 왼쪽 서브트리, 오른쪽 서브트리 높이 차가 0 혹은 1인 이진트리
이진트리가 한쪽으로 치우쳐져 있는 최악의 경우 O(N)을 개선함 ⟹ O(logN)
reference
https://www.programiz.com/dsa/binary-tree
https://yaboong.github.io/data-structures/2018/02/10/1_binary-tree-1/
반응형
'CS > 자료구조' 카테고리의 다른 글
[자료구조] Hash (0) | 2021.06.21 |
---|---|
[자료구조] Doubly Linked List (0) | 2021.06.13 |
[자료구조] Singly LinkedList (0) | 2021.06.13 |
[자료구조] Stack (0) | 2021.06.12 |
[자료구조] Array vs List (0) | 2021.06.09 |