Go to the source code of this file.
|
| struct | min_heap |
| | min-heap data structure with user-provided comparator. More...
|
|
| #define | MIN_HEAP_DEFINE(name, cap, elem_sz, align, cmp_func) |
| | Define a min-heap instance.
|
| #define | MIN_HEAP_DEFINE_STATIC(name, cap, elem_sz, align, cmp_func) |
| | Define a statically allocated and aligned min-heap instance.
|
| #define | MIN_HEAP_FOREACH(heap, node_var) |
| | Iterate over each node in the heap.
|
|
| typedef int(* | min_heap_cmp_t) (const void *a, const void *b) |
| | Comparator function type for min-heap ordering.
|
| typedef bool(* | min_heap_eq_t) (const void *node, const void *other) |
| | Equality function for finding a node in the heap.
|
|
| void | min_heap_init (struct min_heap *heap, void *storage, size_t cap, size_t elem_size, min_heap_cmp_t cmp) |
| | Initialize a min-heap instance at runtime.
|
| int | min_heap_push (struct min_heap *heap, const void *item) |
| | Push an element into the min-heap.
|
| void * | min_heap_peek (const struct min_heap *heap) |
| | Peek at the top element of the min-heap.
|
| bool | min_heap_remove (struct min_heap *heap, size_t id, void *out_buf) |
| | Remove a specific element from the min-heap.
|
| static bool | min_heap_is_empty (struct min_heap *heap) |
| | Check if the min heap is empty.
|
| bool | min_heap_pop (struct min_heap *heap, void *out_buf) |
| | Remove and return the highest priority element in the heap.
|
| void * | min_heap_find (struct min_heap *heap, min_heap_eq_t eq, const void *other, size_t *out_id) |
| | Search for a node in the heap matching a condition.
|
| static void * | min_heap_get_element (const struct min_heap *heap, size_t index) |
| | Get a pointer to the element at the specified index.
|