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