void buildHeap(struct Cell* space)
{
int i;
for(i = ( MAXSIZE / 2) ; i >= 0; i--)
heapify(space, i, MAXSIZE);
}
void heapify(struct Cell* space, int i, int size)
{
int l, r, largest;
l = left(i);
r = right(i);
largest = i;
if(l < size && space[l].data > space[i].data)
largest = l;
if(r < size && space[r].data > space[largest].data)
largest = r;
if(largest != i)
{
swap(&space[i], &space[largest]);
heapify(space, largest, size);
}
return;
}
int parent(int index)
{
return (index - 1) / 2;
}
int left(int index)
{
return 2 * index + 1;
}
int right(int index)
{
return 2 * index + 2;
}