aboutsummaryrefslogtreecommitdiff
path: root/src/priority_queue.h
blob: 98250c90df38ac234f10474884cef0de44330bbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef PQUEUE_H_
#define PQUEUE_H_

struct priority_queue {
    void *buf;
    int elemsz;
    int cap;
    int size;
    int (*cmp)(void *, void *);
};
typedef struct priority_queue priority_queue_t;

void init_priority_queue(priority_queue_t *pq, int cap, int elemsz,
                         int (*cmp)(void *, void *));
void priority_queue_push(priority_queue_t *pq, void *elem);
void priority_queue_pop(priority_queue_t *pq);
void *priority_queue_top(priority_queue_t *pq);

#endif