#include #include #include #include "list.h" #include "task.h" List list_create(char* name) { List list; list.head = NULL; list.length = 0; list.name = strdup(name); return list; } void list_add(List* list, Task t) { Node* newNode = malloc(sizeof(Node)); newNode->t = t; newNode->next = list->head; list->head = newNode; } void list_print(List* list) { void print_helper(Node* n) { if (n == NULL) { return; } print_helper(n->next); task_print(&n->t); } printf("%s\n", list->name); print_helper(list->head); } void list_free(List* list) { Node* current = list->head; while (current != NULL) { Node* temp = current->next; task_free(¤t->t); free(current); current = temp; } free(list->name); }