Binary Heap คือ Complete Binary Tree ที่ปฏิบัติตาม heap ordering property
แบ่งได้ 2 ประเภท:
- Min Heap - ค่าของโหนด ≥ ค่า parent โหนดราก (root) มีค่าน้อยที่สุด
- Max Heap - ค่าของโหนด ≤ ค่า parent โหนดราก มีค่ามากที่สุด
การเก็บใน Array (0-based index):
- Root อยู่ index 0
- ถ้าโหนดอยู่ index i:
- Left child:
(2*i) + 1 - Right child:
(2*i) + 2 - Parent:
(i-1) / 2
- Left child:
ตัวอย่าง Min Heap
Tree: 1 เป็นราก, ลูกซ้าย 4, ลูกขวา 7, ลูกของ 4 คือ 6, 9, ลูกของ 7 คือ 10, 8
Array: [1, 4, 7, 6, 9, 10, 8]
ตัวอย่าง Max Heap
Tree: 11 เป็นราก, ลูกซ้าย 8, ลูกขวา 9, ลูกของ 8 คือ 6, 4, ลูกของ 9 คือ 5, 1
Array: [11, 8, 9, 6, 4, 5, 1]