SlideShare a Scribd company logo
1 of 8
Download to read offline
ฮีพ
ฮีพ คือตนไมทวิภาคแบบสมบูรณ หรือตนไมทวิภาคเกือบสมบูรณที่มีคุณสมบัติดังตอไปนี้
- ฮีพแบบมากที่สุด (Max Heap) คือฮีพที่ทุกโหนดที่เปนโหนดพอ มีคาของ
ขอมูลมากกวา หรือเทากับโหนดลูก
- ฮีพแบบนอยที่สุด (Min Heap) คือฮีพที่ทุกโหนดที่เปนโหนดพอ มีคาของ
ขอมูลนอยกวา หรือเทากับโหนดลูก
ฮีพ
การสรางฮีพมีขั้นตอนดังนี้
1. เพิ่มโหนดแรกเขามา ซึ่งจะกลายเปนโหนดรากของฮีพ
2. เพิ่มโหนดใหมสเขามา โดยใหอยูตําแหนงถัดจากโหนดกอนหนา
3. เปรียบเทียบคาขอมูลระหวาง โหนดใหมที่เพิ่มเขามา และโหนดพอ
กรณีที่สรางฮีพแบบมากที่สุด ถาคาขอมูลของโหนดใหมที่เพิ่มเขามา มีคามากกวาโหนดพอ
ใหสลับตําแหนงกัน (โหนดใหมที่แทรกเขามากลายเปนโหนดพอแทน)
การสรางฮีพ
กรณีสรางฮีพแบบนอยที่สุด ถาคาขอมูลของโหนดที่เพิ่มเขามา มีคานอยกวาโหนดพอให
สลับตําแหนงกัน (โหนดใหมที่แทรกเขามากลายเปนโหนดพอแทน)
4. ตรวจสอบเงื่อนไขดังตอไปนี้
ถามีการสลับตําแหนงกัน และโหนดพอที่ไดจากขอที่ 3 ไมใชโหนดราก ใหโหนดพอนั่น
กลายเปนโหนดที่เพิ่มเขามาแลวกลับไปทําขอ 3
ถาไมมีการสลับตําแหนง หรือโหนดพอที่ไดจากขอ 3 เปนโหนดราก ใหตรวจสอบวามีโหนด
ที่ตองการเพิ่มเขามาในฮีพอีกหรือไม ถามีใหสกลับไปทําขอ 2 แตถาไมมี แสดงวาการสรางฮีพเสร็จ
สมบูรณ
การสรางฮีพ
การลบโหนด จะทําไดในกรณีเดียวคือ การลบโหนดรากเทานั้น โดยทีขั้นตอนวิธีดังนี้
1. สลับตําแหนงระหวางโหนดราก และโหนดสุดทาย
2. ลบโหนดสุดทาย ซึ่งขนาดของแถวลําดับที่ใชในการเก็บฮีพจะลดลง 1 ตําแหนง
3. ใหโหนดรากเปนโหนดพอที่พิจารณา
4. เปรียบเทียบคาขอมูลระหวางโหนดพอที่พิจารณา และโหนดลูกทั้งสองดาน
การลบโหนด
กรณีที่สรางฮีพแบบมากที่สุด ใหโหนดที่โหนดมีคาสูงสุดของโหนดลูก มาเปรียบเทียบกับ
โหนดพอที่พิจารณา ถาคาขอมูลของโหนดพอมีคานอยกวาใหสลับตําแหลงกัน (โหนดพอกลายเปน
โหนดลูกแทน)
กรณีที่สรางฮีพแบบนอยที่สุด ใหโหนดที่มีคานอยสุดของโหนดลูก มาเปรียบเทียบกับโหนด
พอที่พิจารณา ถาคาขอมูลของโหนดพอมีคามากกวาใหสลับตําแหนงกัน (โหนดพอกลายเปนโหนดลูก
แทน)
5. ถามีการสลับตําแหนงกัน และโหนดลูกที่ไดจากขอ 4 ไมใชโหนดใบ ใหโหนดลูกนั้น
กลายเ)นโหนดพอที่พิจารณา แลวกลับไปทําขอ 4 แตถาไมใชแสดงวาการลบโหนดเสร็จสมบูรณ
การลบโหนด
สําหรับการแทนโครงสรางของฮีพสามารถกระทําไดทั้งโครงสรางขอมูลแบบ
แถวลําดับและโครงสรางขอมูลแบบรายการโยง แตดวยที่วาคุณสมบัติของฮีพที่จะตอง
เปนตนไมทวิภาคแบบสมบูรณหรือเกือบสมบูรณ จึงทําใหการแทนที่โครงสรางของฮี
พดวยแถวลําดับมีความสะดวกและสามารถพัฒนาไดงาย
การลบโหนด
จบแลวคะ

More Related Content

Viewers also liked (6)

CV eldashash
CV eldashashCV eldashash
CV eldashash
 
Fundusze europejskie 2014 - 2020
Fundusze europejskie 2014 - 2020Fundusze europejskie 2014 - 2020
Fundusze europejskie 2014 - 2020
 
Member Alignment Sheet
Member Alignment SheetMember Alignment Sheet
Member Alignment Sheet
 
CV_MAY ANN SALUTE
CV_MAY ANN SALUTECV_MAY ANN SALUTE
CV_MAY ANN SALUTE
 
Resume_SurajitB
Resume_SurajitBResume_SurajitB
Resume_SurajitB
 
Antti Orkola: Viljasta maltaaksi
Antti Orkola: Viljasta maltaaksiAntti Orkola: Viljasta maltaaksi
Antti Orkola: Viljasta maltaaksi
 

More from Kitdamas Wangpreecha (9)

Tree.two
Tree.twoTree.two
Tree.two
 
Tree.one
Tree.oneTree.one
Tree.one
 
Tree
TreeTree
Tree
 
Tree 2
Tree 2Tree 2
Tree 2
 
Tree1
Tree1Tree1
Tree1
 
Tree
TreeTree
Tree
 
Pu
PuPu
Pu
 
Tree
TreeTree
Tree
 
Tree
TreeTree
Tree
 

Tree.three