Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การลบจาก Max Heap ในโครงสร้างข้อมูล


ที่นี่เราจะมาดูวิธีการลบองค์ประกอบออกจากโครงสร้างข้อมูลไบนารีสูงสุดของฮีปแบบไบนารี สมมติว่าต้นไม้เริ่มต้นเป็นเหมือนด้านล่าง −

การลบจาก Max Heap ในโครงสร้างข้อมูล

อัลกอริธึมการลบ

delete(heap, n) −
Begin
   if heap is empty, then exit
   else
      item := heap[1]
      last := heap[n]
      n := n – 1
      for i := 1, j := 2, j <= n, set i := j and j := j * 2, do
         if j < n, then
            if heap[j] < heap[j + 1], then j := j + 1
         end if
         if last >= heap[j], then break
         heap[i] := heap[j]
      done
   end if
   heap[i] := last
End

ตัวอย่าง

สมมติว่าเราต้องการลบ 30 ออกจากฮีปสุดท้าย -

การลบจาก Max Heap ในโครงสร้างข้อมูล