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

การลบองค์ประกอบตามอำเภอใจจาก Max HBLT ในโครงสร้างข้อมูล


การลบโหนดโดยพลการจาก HBLT สูงสุดหรือต่ำสุดไม่ใช่การดำเนินการมาตรฐาน สำหรับคิวลำดับความสำคัญหรือ HBLT หากเราต้องการลบโหนดที่บอกว่า K จาก HBLT เราต้องปฏิบัติตามกฎต่อไปนี้

  • ถอดทรีย่อยที่รูทที่ K ออกจากทรี และแทนที่ด้วยการรวมของทรีย่อยของโหนด K

  • อัปเดตค่าจากพาธจาก K เป็นรูท และสลับทรีย่อยบนพาธนี้ตามความจำเป็นเพื่อรักษาคุณสมบัติของ HBLT

ในการอัพเดตค่า s จาก K เป็นรูท เราจำเป็นต้องมีตัวชี้พาเรนต์สำหรับแต่ละโหนด การดำเนินการสำหรับการอัปเดตค่า s เป็นโหนดที่สูงขึ้นจะหยุดลงเมื่อเราเห็นว่าค่า s ไม่เปลี่ยนแปลง ค่าที่เปลี่ยนแปลงจะต้องสร้างลำดับจากน้อยไปมาก เนื่องจากแต่ละโหนดต้องมากกว่าโหนดก่อนหน้าหนึ่งโหนด เนื่องจากค่า max s คือ O(log n) และค่า s ทั้งหมดเป็นค่าบวก โหนด O(log n) สูงสุดจะพบในการอัพเดตพาส แต่ละโหนดใช้ O(1) เพื่ออัปเดตค่า ความซับซ้อนโดยรวมของการลบโหนดโดยพลการคือ O(log n)