Commit 197a36f

mo khan <mo.khan@gmail.com>
2020-06-29 20:47:42
Pass priority and data to add function
1 parent 8c85cd6
src/01/01a/priority_queue.c
@@ -22,7 +22,8 @@ int size(PriorityQueue *queue) {
 }
 
 // This function is linear time O(n)
-void add(PriorityQueue *queue, Node *node) {
+void add(PriorityQueue *queue, int priority, int data) {
+  Node *node = create_node(priority, data);
   queue->size++;
 
   if (queue->head == NULL) {
src/01/01a/priority_queue.h
@@ -12,8 +12,7 @@ typedef struct {
 } PriorityQueue;
 
 PriorityQueue *initialize();
-Node *create_node(int priority, int data);
 int size(PriorityQueue *queue);
-void add(PriorityQueue *queue, Node *node);
+void add(PriorityQueue *queue, int priority, int data);
 Node *delete_min(PriorityQueue *queue);
 void destroy(PriorityQueue *queue);
src/01/01a/priority_queue_test.c
@@ -36,7 +36,7 @@ Ensure(PriorityQueue, returns_size) {
 Ensure(PriorityQueue, adds_a_node) {
   PriorityQueue *queue = initialize();
 
-  add(queue, create_node(1, 0));
+  add(queue, 1, 0);
 
   assert_that(size(queue), is_equal_to(1));
 
@@ -46,9 +46,9 @@ Ensure(PriorityQueue, adds_a_node) {
 Ensure(PriorityQueue, removes_the_node_with_the_lowest_priority){
   PriorityQueue *queue = initialize();
 
-  add(queue, create_node(3, 300));
-  add(queue, create_node(1, 100));
-  add(queue, create_node(2, 200));
+  add(queue, 3, 300);
+  add(queue, 1, 100);
+  add(queue, 2, 200);
 
   assert_that(size(queue), is_equal_to(3));
   assert_that(delete_min(queue)->data, is_equal_to(100));
@@ -70,7 +70,7 @@ Ensure(PriorityQueue, when_removing_node_from_empty_queue) {
 Ensure(PriorityQueue, when_removing_it_decreases_the_size) {
   PriorityQueue *queue = initialize();
 
-  add(queue, create_node(1, 0));
+  add(queue, 1, 0);
   delete_min(queue);
 
   assert_that(size(queue), is_equal_to(0));
@@ -81,9 +81,9 @@ Ensure(PriorityQueue, when_removing_it_decreases_the_size) {
 Ensure(PriorityQueue, when_removing_the_last_node_it_decrements_the_count_correctly) {
   PriorityQueue *queue = initialize();
 
-  add(queue, create_node(2, 200));
-  add(queue, create_node(1, 100));
-  add(queue, create_node(3, 300));
+  add(queue, 2, 200);
+  add(queue, 1, 100);
+  add(queue, 3, 300);
 
   delete_min(queue);
   delete_min(queue);