将元素插入元素

要将元素插入deap数据结构,我们可能需要以下过程来计算最小值和最大值,如下所示-

min_value(m)过程://计算最小的最小值。返回m-2 log 2(m-1) ;

过程max_value(m)://计算deap中的最大值。返回m + 2 log 2 (m-1) ;

deap数据结构中的插入操作可以通过以下方式完成-

  • 对于任何堆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;
}