diff options
Diffstat (limited to 'src/01/01a/priority_queue.c')
| -rw-r--r-- | src/01/01a/priority_queue.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/01/01a/priority_queue.c b/src/01/01a/priority_queue.c index 2d0670d..cf59302 100644 --- a/src/01/01a/priority_queue.c +++ b/src/01/01a/priority_queue.c @@ -49,9 +49,13 @@ void add(PriorityQueue *queue, Node *node) { // This function is constant time O(1) Node *delete_min(PriorityQueue *queue) { - Node *tmp = queue->head; - queue->head = tmp->next; - return tmp; + if (queue->head) { + Node *tmp = queue->head; + queue->head = tmp->next; + queue->size--; + return tmp; + } + return NULL; } void destroy(PriorityQueue *queue) { |
