summaryrefslogtreecommitdiff
path: root/src/01/01a/priority_queue.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/01/01a/priority_queue.c')
-rw-r--r--src/01/01a/priority_queue.c10
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) {