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

การแทรกองค์ประกอบลงใน Deaps


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

ขั้นตอน 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;
}