Insertion and Deletion in Heaps in Data Sturcture

Data StructureAnalysis of AlgorithmsAlgorithms

Here we will see how to insert and delete elements from binary heap data structures. Suppose the initial tree is like below −

Insertion Algorithm

insert(heap, n, item):
Begin
   if heap is full, then exit
   else
      n := n + 1
      for i := n, i > 1, set i := i / 2 in each iteration, do
         if item <= heap[i/2], then break
         heap[i] = heap[i/2]
      done
   end if
   heap[i] := item
End

Example

Suppose we want to insert 30 into the heap −


Deletion Algorithm

delete(heap, n):
Begin
   if heap is empty, then exit
   else
      item := heap[1]
      last := heap[n]
      n := n – 1
      for i := 1, j := 2, j <= n, set i := j and j := j * 2, do
         if j < n, then
            if heap[j] < heap[j + 1], then j := j + 1
         end if
         if last >= heap[j], then break
         heap[i] := heap[j]
      done
   end if
   heap[i] := last
End

Example

Suppose we want to delete 30 from the final heap −

raja
Published on 10-Aug-2020 08:59:08
Advertisements