osurs  0.0.1
queue.h
Go to the documentation of this file.
1 
13 #ifndef OSURS_DS_QUEUE_H_
14 #define OSURS_DS_QUEUE_H_
15 
16 #include <stdbool.h>
17 
24 typedef struct QueueNode {
25  void* data;
26  struct QueueNode* next;
28 
36 typedef struct Queue {
40 
49 void queue_init(Queue* queue);
50 
60 
70 void queue_enqueue(Queue* queue, void* data);
71 
81 void* queue_dequeue(Queue* queue);
82 
91 bool queue_is_empty(Queue* queue);
92 
101 void queue_clear(Queue* queue);
102 
110 void queue_free(Queue* queue);
111 
112 #endif // OSURS_DS_QUEUE_H_
void * queue_dequeue(Queue *queue)
Remove an element from the front of a Queue.
Definition: queue.c:44
void queue_free(Queue *queue)
Free a Queue structure.
Definition: queue.c:70
bool queue_is_empty(Queue *queue)
Check if a Queue is empty.
Definition: queue.c:59
void queue_clear(Queue *queue)
Clear all elements from a Queue.
Definition: queue.c:61
Queue * queue_create()
Create a new Queue structure.
Definition: queue.c:18
void queue_init(Queue *queue)
Initialize a Queue structure.
Definition: queue.c:13
void queue_enqueue(Queue *queue, void *data)
Add an element to the end of a Queue.
Definition: queue.c:28
struct Queue Queue
Queue.
struct QueueNode QueueNode
Queue node.
Queue node.
Definition: queue.h:24
struct QueueNode * next
Definition: queue.h:26
void * data
Definition: queue.h:25
Queue.
Definition: queue.h:36
QueueNode * tail
Definition: queue.h:38
QueueNode * head
Definition: queue.h:37