DeleteMin Code
Object deleteMin() {
assert(!isEmpty());
returnVal = Heap[1];
size--;
newPos =
percolateDown(1,
Heap[size+1]);
Heap[newPos] =
Heap[size + 1];
return returnVal;
}
int percolateDown(int hole,
Object val) {
while (2*hole <= size) {
left = 2*hole;
right = left + 1;
if (right <= size &&
Heap[right] < Heap[left])
target = right;
else
target = left;
if (Heap[target] < val) {
Heap[hole] = Heap[target];
hole = target;
}
else
break;
}
return hole;
}
runtime:
Previous slide
Next slide
Back to first slide
View graphic version