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

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


ต้นไม้เริ่มต้น

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

อัลกอริทึมการลบ (Deletion Algorithm)

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 จาก Heap สุดท้าย:

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