summaryrefslogtreecommitdiff
path: root/src/01/01a/priority_queue.h
blob: e5390f7dbbc498ba7c7a84dcd6d7e917331c4055 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * A struct that represents a single node in a linked list
 */
struct node {
  int priority;
  int data;
  struct node *next;
};

typedef struct node Node;

/**
 * A struct that represents a Queue implemented using a Singly Linked List.
 */
typedef struct {
  Node *head;
  int size;
} PriorityQueue;

PriorityQueue *initialize();
int size(PriorityQueue *queue);
void add(PriorityQueue *queue, int priority, int data);
int delete_min(PriorityQueue *queue);
void destroy(PriorityQueue *queue);
void inspect(PriorityQueue *queue);