Name
heap_init
Synopsis
void heap_init(Heap *heap
, int (*compare
)(const void *key1
, const void *key2
) void (*destroy
)(void *data
));
Return Value
None.
Description
Initializes the heap specified by
heap
. This operation must be called for
a heap before the heap can be used with any other operation. The
compare
argument is a function used by
various heap operations to compare nodes when fixing the heap.
This function should return 1 if key1
> key2
, if
key1
= key2
,
and -1 if key1
<
key2
for a top-heavy heap. For a
bottom-heavy heap, compare
should
reverse the cases that return 1 and -1. The
destroy
argument provides a way to free
dynamically allocated data when heap_destroy
is called. For example, if the heap contains data dynamically
allocated using malloc,
destroy
should be set to
free to free the data as the heap is
destroyed. For structured data containing several dynamically
allocated members, destroy
should be
set to a user-defined function that calls
free for each dynamically allocated member as
well as for the structure itself. For a heap containing data that
should not be freed, destroy
should be
set to NULL.
Complexity
O (1)
Get Mastering Algorithms with C now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.