ADAPT / lib / include / heap.h
heap.h
Raw
#include <stddef.h>

#ifndef HEAP_H
#define HEAP_H

struct heap_entry
{
    int priority;
    void *payload;
};

struct heap
{
    struct heap_entry *heap_array;
    size_t max_size;
    size_t cur_size;    
};


void heap_init(struct heap *heap,size_t initial_size);
void heap_insert(struct heap *heap, int priority, void *payload);
void *heap_peek(struct heap *heap);
int heap_peek_priority(struct heap *heap);
void *heap_top(struct heap *heap);
void heap_destroy(struct heap *heap);

//inline 
static inline int parent(int idx);
static inline int leftchild(int idx);
static inline int rightchild(int idx);
#endif