ในการแทรกองค์ประกอบลงในโครงสร้างข้อมูลเชิงลึก เราอาจต้องใช้ขั้นตอนในการคำนวณค่าต่ำสุดและสูงสุดตามที่แสดงด้านล่าง -
ขั้นตอน min_value(m)://การคำนวณค่าต่ำสุดในเชิงลึก ส่งคืน m-2 log 2 ( (m-1) ;
ขั้นตอน max_value(m)://การคำนวณค่าสูงสุดเป็น deap ส่งคืน m+2 log 2 (m-1) ;
การดำเนินการแทรกในโครงสร้างข้อมูลเชิงลึกสามารถทำได้ดังนี้ -
- สำหรับฮีป b[] ใดๆ เราควรตรวจสอบว่า m เป็นตำแหน่งภายในฮีปสูงสุดของ deap หรือไม่
- จากนั้นเราจะคำนวณค่าต่ำสุดและสูงสุดในเชิงลึก
- ตอนนี้ การเปรียบเทียบเสร็จสิ้นระหว่างค่าคีย์ที่ทรีย่อยด้านซ้ายและทรีย่อยด้านขวา
- สุดท้าย เราดำเนินการแทรกด้วยอัลกอริธึมต่อไปนี้
Procedure deap_insertion(b[], y, m):
if (m==1)
b[2]=y;
else{
if(m is in maximum subtree){
index=min_value(m);
if(y<b[index]){
b[m]=b[index];
insert y in minimum subtree;
}
else
insert y in maximum subtree;
} else {
index=max_value(m);
if(x>b[index]){
b[m]=b[index];
insert y into maximum subtree;
}
else
insert y into minimum subtree;
}