30#define HEAP_PARENT(i) ((i)/2)
31#define HEAP_LEFT(i) (2*(i))
32#define HEAP_RIGHT(i) (2*(i)+1)
40typedef void (*heap_free_elt_fn_t) (
void* elt);
46 heap_free_elt_fn_t free_fn;
51heap_t* heap_alloc(
int size, heap_free_elt_fn_t free_fn);
53void heap_heapify(
heap_t* h,
int i);
54void* heap_extract_max(
heap_t* h);
55void heap_insert(
heap_t* h,
double key,
void* data);