mirror of
				https://github.com/theoludwig/libcproject.git
				synced 2025-05-21 23:21:15 +02:00 
			
		
		
		
	feat: add linked_list_free
This commit is contained in:
		| @@ -84,3 +84,13 @@ void linked_list_reverse_mutate(struct linked_list *list) { | ||||
|     (*current) = temporary_current; | ||||
|   } | ||||
| } | ||||
|  | ||||
| void linked_list_free(struct linked_list *list) { | ||||
|   struct linked_list_node *node_current = list->head; | ||||
|   while (node_current != NULL) { | ||||
|     struct linked_list_node *node_to_remove = node_current; | ||||
|     node_current = node_current->next; | ||||
|     free(node_to_remove); | ||||
|   } | ||||
|   free(list); | ||||
| } | ||||
|   | ||||
| @@ -62,4 +62,10 @@ struct linked_list *linked_list_reverse(struct linked_list *list); | ||||
|  */ | ||||
| void linked_list_reverse_mutate(struct linked_list *list); | ||||
|  | ||||
| /** | ||||
|  * @brief Free the linked list. | ||||
|  * @since v2.1.0 | ||||
|  */ | ||||
| void linked_list_free(struct linked_list *list); | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -13,6 +13,7 @@ void linked_list_initialization_test() { | ||||
|   struct linked_list *list = linked_list_initialization(); | ||||
|   assert(list->length == 0); | ||||
|   assert(list->head == NULL); | ||||
|   linked_list_free(list); | ||||
| } | ||||
|  | ||||
| void linked_list_add_in_head_test() { | ||||
| @@ -25,6 +26,7 @@ void linked_list_add_in_head_test() { | ||||
|   assert(((uintptr_t)list->head->next->data) == 8); | ||||
|   assert(((uintptr_t)list->head->next->next->data) == 4); | ||||
|   assert(list->head->next->next->next == NULL); | ||||
|   linked_list_free(list); | ||||
| } | ||||
|  | ||||
| void linked_list_delete_in_head_test() { | ||||
| @@ -37,6 +39,7 @@ void linked_list_delete_in_head_test() { | ||||
|   assert(((uintptr_t)list->head->data) == 8); | ||||
|   assert(((uintptr_t)list->head->next->data) == 4); | ||||
|   assert(list->head->next->next == NULL); | ||||
|   linked_list_free(list); | ||||
| } | ||||
|  | ||||
| void linked_list_add_after_last_test() { | ||||
| @@ -54,6 +57,7 @@ void linked_list_add_after_last_test() { | ||||
|   assert(((uintptr_t)list->head->next->data) == 8); | ||||
|   assert(((uintptr_t)list->head->next->next->data) == 4); | ||||
|   assert(((uintptr_t)list->head->next->next->next->data) == 18); | ||||
|   linked_list_free(list); | ||||
| } | ||||
|  | ||||
| void linked_list_reverse_test() { | ||||
| @@ -74,6 +78,7 @@ void linked_list_reverse_test() { | ||||
|   assert((list_reversed->head->next->data) == (void *)'C'); | ||||
|   assert((list_reversed->head->next->next->data) == (void *)'B'); | ||||
|   assert((list_reversed->head->next->next->next->data) == (void *)'A'); | ||||
|   linked_list_free(list); | ||||
| } | ||||
|  | ||||
| void linked_list_reverse_mutate_test() { | ||||
| @@ -89,4 +94,5 @@ void linked_list_reverse_mutate_test() { | ||||
|   assert((list->head->next->data) == (void *)'C'); | ||||
|   assert((list->head->next->next->data) == (void *)'B'); | ||||
|   assert((list->head->next->next->next->data) == (void *)'A'); | ||||
|   linked_list_free(list); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user