Computer >> Máy Tính >  >> Lập trình >> Lập trình

Loại bỏ phần tử Min khỏi Deaps

Bây giờ chúng ta sẽ giải thích kỹ thuật loại bỏ các phần tử min trong cấu trúc dữ liệu deap. Trong quá trình xóa, mục tiêu chính của chúng tôi là xóa giá trị tối thiểu khỏi các lần tắt. Vì chiều cao của cây luôn là log n, nên nó tiêu tốn thời gian theo thứ tự là log n. Chúng ta có thể thảo luận về thao tác xóa như sau -

Procedure deap_deletion(b[],m):
if(m<2)
   return; //There are no elements.
min=b[2]; //Minimum value is saved
for (i=2;2*i<=m;b[i]=b[k],i=k){
   k=i*2;
   If(k+1<=m && b[k]>b[k+1])
      k++;
   }
   k=max_value(i);
   if(x>b[k]){
      b[i]=b[k];
      insert y into maximum subtree;
   } else {
      insert y into minimum subtree;
}