Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การแสดง Binary Heap ด้วย Array (Array Representation of Binary Heap)

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

ตัวอย่าง 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]