libcstl
|
Go to the source code of this file.
Data Structures | |
struct | cstl_heap_node |
Node to anchor an element within a heap. More... | |
struct | cstl_heap |
Heap object. More... | |
Macros | |
#define | CSTL_HEAP_INITIALIZER(TYPE, MEMB, CMP, PRIV) |
Constant initialization of a heap object. | |
#define | DECLARE_CSTL_HEAP(NAME, TYPE, MEMB, CMP, PRIV) |
(Statically) declare and initialize a heap | |
Functions | |
static void | cstl_heap_init (struct cstl_heap *const h, cstl_compare_func_t *const cmp, void *const priv, const size_t off) |
Initialize a heap object. | |
static size_t | cstl_heap_size (const struct cstl_heap *const h) |
Get the number of objects in the heap. | |
void | cstl_heap_push (struct cstl_heap *h, void *e) |
Insert a new object into the heap. | |
const void * | cstl_heap_get (const struct cstl_heap *h) |
Get a pointer to the object at the top of the heap. | |
void * | cstl_heap_pop (struct cstl_heap *h) |
Remove the highest valued element from the heap. | |
static void | cstl_heap_clear (struct cstl_heap *const h, cstl_xtor_func_t *const clr) |
Remove all elements from the heap. | |
static void | cstl_heap_swap (struct cstl_heap *const a, struct cstl_heap *const b) |
Swap the heap objects at the two given locations. | |