libvieter/include/vieter_heap.h

28 lines
611 B
C
Raw Normal View History

2023-01-21 16:31:22 +01:00
#ifndef VIETER_HEAP
#define VIETER_HEAP
#include <stddef.h>
#include <stdint.h>
2023-01-21 16:31:22 +01:00
typedef struct vieter_heap vieter_heap;
typedef enum vieter_heap_error {
vieter_heap_ok = 0,
vieter_heap_empty = 1
2023-01-21 16:31:22 +01:00
} vieter_heap_error;
vieter_heap *vieter_heap_init();
void vieter_heap_free(vieter_heap *heap);
uint64_t vieter_heap_size(vieter_heap *heap);
vieter_heap_error vieter_heap_insert(vieter_heap *heap, uint64_t key,
void *data);
2023-01-21 16:31:22 +01:00
vieter_heap_error vieter_heap_pop(void **out, vieter_heap *heap);
vieter_heap_error vieter_heap_peek(void **out, vieter_heap *heap);
#endif