ในการแทรกองค์ประกอบลงในโครงสร้างข้อมูลเชิงลึก เราอาจต้องใช้ขั้นตอนในการคำนวณค่าต่ำสุดและสูงสุดตามที่แสดงด้านล่าง -
ขั้นตอน 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; }