n개라면 edge는 n-1개root는 가지지 않으므로 n-1 개h라면 가능한 노드의 최대 개수는 2^h -1개l에서의 최대 노드의 개수는 2^(l-1)개root에서 레벨이 1이므로 노드의 개수 2^0 = 1, 레벨이 3일 경우 2^2 = 4h일 경우 1~h까지 모든 레벨에서의 노드 개수의 합이므로 2^h -1예시
레벨 1 : 1개 = 2^(1-1)
레벨 2 : 2개 = 2^(2-1)
레벨 3 : 4개 = 2^(3-1)
총합 7개 = 2^3 -1
left to right의 순서를 따라 채워져야함leaf 노드들은 동일한 레벨을 가짐h일 경우 노드의 개수가 2^h -1을 보장Array를 통해 Binary Tree를 구현하기 위해서는 높이가 h일 경우 2^h -1 크기를 할당해야함
각각의 값을 대응되는 인덱스에 저장
root: 1번 인덱스에 저장
Level 1: 2,3번 인덱스에 저장
Level 2: 4~8번 인덱스에 저장
...
(각 레벨당2^(l-1)개수의 메모리 공간을 할당)
Complet Binary Tree나 Prefect Binary Tree에는 적합
편향된 Binary Tree일 경우 사용하지 않는 배열 영역이 많아져 공간 활용에 불리함
0번 인덱스는 사용하지 않음
특정 노드의 인덱스가 i라고 가정
1. 부모 노드의 인덱스 : i/2
2. 자식 노드 중 left 노드의 인덱스 : 2*i
3. 자식 노드 중 right 노드의 인덱스 : 2*i +1