More Related Content
More from Kitdamas Wangpreecha
More from Kitdamas Wangpreecha (9)
Tree.three
- 4. กรณีสรางฮีพแบบนอยที่สุด ถาคาขอมูลของโหนดที่เพิ่มเขามา มีคานอยกวาโหนดพอให
สลับตําแหนงกัน (โหนดใหมที่แทรกเขามากลายเปนโหนดพอแทน)
4. ตรวจสอบเงื่อนไขดังตอไปนี้
ถามีการสลับตําแหนงกัน และโหนดพอที่ไดจากขอที่ 3 ไมใชโหนดราก ใหโหนดพอนั่น
กลายเปนโหนดที่เพิ่มเขามาแลวกลับไปทําขอ 3
ถาไมมีการสลับตําแหนง หรือโหนดพอที่ไดจากขอ 3 เปนโหนดราก ใหตรวจสอบวามีโหนด
ที่ตองการเพิ่มเขามาในฮีพอีกหรือไม ถามีใหสกลับไปทําขอ 2 แตถาไมมี แสดงวาการสรางฮีพเสร็จ
สมบูรณ
การสรางฮีพ
- 5. การลบโหนด จะทําไดในกรณีเดียวคือ การลบโหนดรากเทานั้น โดยทีขั้นตอนวิธีดังนี้
1. สลับตําแหนงระหวางโหนดราก และโหนดสุดทาย
2. ลบโหนดสุดทาย ซึ่งขนาดของแถวลําดับที่ใชในการเก็บฮีพจะลดลง 1 ตําแหนง
3. ใหโหนดรากเปนโหนดพอที่พิจารณา
4. เปรียบเทียบคาขอมูลระหวางโหนดพอที่พิจารณา และโหนดลูกทั้งสองดาน
การลบโหนด
- 6. กรณีที่สรางฮีพแบบมากที่สุด ใหโหนดที่โหนดมีคาสูงสุดของโหนดลูก มาเปรียบเทียบกับ
โหนดพอที่พิจารณา ถาคาขอมูลของโหนดพอมีคานอยกวาใหสลับตําแหลงกัน (โหนดพอกลายเปน
โหนดลูกแทน)
กรณีที่สรางฮีพแบบนอยที่สุด ใหโหนดที่มีคานอยสุดของโหนดลูก มาเปรียบเทียบกับโหนด
พอที่พิจารณา ถาคาขอมูลของโหนดพอมีคามากกวาใหสลับตําแหนงกัน (โหนดพอกลายเปนโหนดลูก
แทน)
5. ถามีการสลับตําแหนงกัน และโหนดลูกที่ไดจากขอ 4 ไมใชโหนดใบ ใหโหนดลูกนั้น
กลายเ)นโหนดพอที่พิจารณา แลวกลับไปทําขอ 4 แตถาไมใชแสดงวาการลบโหนดเสร็จสมบูรณ
การลบโหนด