diff options
| author | mo khan <mo.khan@gmail.com> | 2020-06-15 22:42:10 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-06-15 22:42:10 -0600 |
| commit | f153b6cf3b67a379319012a6da2ee79fc6b72e49 (patch) | |
| tree | 353b71c703cb8b7f86a10d37f5cf19111240fcf9 | |
| parent | d0b23018d89be21edd0e04d2d2d0049759384e99 (diff) | |
free the queue
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | assignments/01/priority_queue.c | 13 |
2 files changed, 8 insertions, 6 deletions
@@ -1,2 +1,3 @@ *.o main +junit/ diff --git a/assignments/01/priority_queue.c b/assignments/01/priority_queue.c index b06e983..9ec7721 100644 --- a/assignments/01/priority_queue.c +++ b/assignments/01/priority_queue.c @@ -17,10 +17,12 @@ Node *create_node(int priority, int data) { return node; } +// This function is constant time O(1) int size(PriorityQueue *queue) { return queue->size; } +// This function is linear time O(n) void add(PriorityQueue *queue, Node *node) { queue->size++; @@ -46,6 +48,7 @@ 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; @@ -55,12 +58,10 @@ Node *delete_min(PriorityQueue *queue) { void inspect(PriorityQueue *queue) { Node *tmp = queue->head; - printf("*******\n"); while(tmp) { printf("%d\n", tmp->data); tmp = tmp->next; } - printf("*******\n"); } void destroy(PriorityQueue *queue) { @@ -68,9 +69,9 @@ void destroy(PriorityQueue *queue) { Node *tmp; while(current) { - tmp = current; - current = current->next; - if (tmp) - free(tmp); + tmp = current, current = current->next; + + if (tmp) free(tmp); } + free(queue); } |
