bool heap_peek_min(const heap_t *h, int *out_value)
void heap_destroy(heap_t *h)
void heap_sift_down_max(int *arr, size_t i, size_t n)
void heap_build_min(int *arr, size_t n)
heap_t * heap_create(void)
bool heap_extract_min(heap_t *h, int *out_value)
bool heap_is_empty(const heap_t *h)
bool heap_insert(heap_t *h, int value)
size_t heap_size(const heap_t *h)