Concord - C Discord API library
A Discord API wrapper library written in C
priority_queue.h
Go to the documentation of this file.
1
2// MIT License
3// Copyright (c) 2022 Anotra
4// https://github.com/Anotra/priority_queue
5
6#pragma once
7
8#ifndef PRIORITY_QUEUE_H
9#define PRIORITY_QUEUE_H
10
11#include <stdlib.h>
12
14typedef unsigned priority_queue_id;
15
16typedef enum {
20
22 size_t key_size, size_t val_size,
23 int(*cmp)(const void *a, const void *b),
25
27
29
31 priority_queue *queue,
32 size_t capacity);
33
35 priority_queue *queue,
36 void *key, void *val);
37
39 priority_queue *queue,
40 void *key, void *val);
41
43 priority_queue *queue,
44 void *key, void *val);
45
47 priority_queue *queue,
49 void *key, void *val);
50
52 priority_queue *queue,
54
57 void *key, void *val);
58
59#endif
priority_queue * priority_queue_create(size_t key_size, size_t val_size, int(*cmp)(const void *a, const void *b), priority_queue_flags flags)
priority_queue_id priority_queue_peek(priority_queue *queue, void *key, void *val)
priority_queue_id priority_queue_get(priority_queue *queue, priority_queue_id id, void *key, void *val)
size_t priority_queue_length(priority_queue *queue)
void priority_queue_destroy(priority_queue *queue)
priority_queue_id priority_queue_push(priority_queue *queue, void *key, void *val)
void priority_queue_set_max_capacity(priority_queue *queue, size_t capacity)
int priority_queue_update(priority_queue *queue, priority_queue_id id, void *key, void *val)
priority_queue_id priority_queue_pop(priority_queue *queue, void *key, void *val)
priority_queue_flags
Definition: priority_queue.h:16
@ priority_queue_max
Definition: priority_queue.h:18
@ priority_queue_min
Definition: priority_queue.h:17
struct priority_queue priority_queue
Definition: priority_queue.h:13
int priority_queue_del(priority_queue *queue, priority_queue_id id)
unsigned priority_queue_id
Definition: priority_queue.h:14