aboutsummaryrefslogtreecommitdiff
path: root/src/priority_queue.h
blob: 895bb42c1d2dba0db3f6af41f45c5e0a81830342 (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();

#endif