우선순위 큐를 구현할 때 사용하는 대표적인 자료구조이다.
1. heap order property
Max Heap -> 각 노드의 값은 자신의 자식노드가 가진 값보다 크거나 같다.
Min Heap -> 각 노드의 값은 자신의 자식노드가 가진 값보다 작거나 같다.
2. heap shape property
힙 트리는 완전이진트리의 모양으로, 마지막 레벨의 모든 노드는 왼쪽으로 쏠려있다.
완전이진트리?
Full Binary Tree의 이름 그대로, 존재하는 노드들이 L->R 의 순서를 맞춰 빼곡히 채워져 나가는중인 트리.
+트리의 높이를 h라고 할 때, h-1의 높이까지는 포화이진트리의 상태로 모두 채워져 있어야 한다.
힙에서는 항상 '루트 노드'를 제거한다.
최소 힙 (min heap)
- 루트 노드가 가장 작은 값을 가진다.
-> 2의 루트노드 삭제 규칙에 따라, 가장 작은 값이 우선적으로 제거된다.
최대 힙 (max heap)
- 루트 노드가 가장 큰 값을 가진다.
-> 2의 루트노드 삭제 규칙에 따라, 가장 큰 값이 우선적으로 제거된다.
두 개의 서브 트리가