Esempio n. 1
0
 public ImmutableMinHeap Insert(int x)
 {
     if (isEmpty())
     {
         return(new ImmutableMinHeap(x));
     }
     if (left.size < Math.Pow(left.height, 2) - 1)
     {
         return(PercolateUp(value, left.Insert(x), right));
     }
     if (right.size < Math.Pow(right.height, 2) - 1)
     {
         return(PercolateUp(value, left, right.Insert(x)));
     }
     if (right.height < left.height)
     {
         return(PercolateUp(value, left, right.Insert(x)));
     }
     return(PercolateUp(value, left.Insert(x), right));
 }