From d66c0455204b43e372e65fbf7b2484f74542ecab Mon Sep 17 00:00:00 2001 From: Max Skanvik <maxsk293@student.liu.se> Date: Tue, 26 Jan 2021 13:44:26 +0100 Subject: [PATCH] finished part 3 with no memory leaks --- linked_list.c | 38 ++++++++++++++++++++++++++++++++------ ll | Bin 0 -> 17088 bytes 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100755 ll diff --git a/linked_list.c b/linked_list.c index be90301..0f7cf7f 100644 --- a/linked_list.c +++ b/linked_list.c @@ -2,6 +2,7 @@ #include <stdio.h> #include <stdlib.h> + struct list_item { int value; struct list_item * next; @@ -19,20 +20,30 @@ void append(struct list_item *first, int x){ current->next = new_item; } + void prepend(struct list_item *first, int x){ struct list_item * new_item = (struct list_item *) malloc(sizeof(struct list_item)); - new_item->next = first; + new_item->next = first->next; new_item->value = x; + first->next = new_item; } + void print(struct list_item *first){ struct list_item * current = first; - while (current->next != NULL) { - current = current->next; - printf("%d \n", current->value); + if (current->next != NULL) { + while (current->next != NULL) { + current = current->next; + printf("%d \n", current->value); + } + } + else { + printf("Empty arry \n"); } + printf("\n"); } + void input_sorted(struct list_item *first, int x){ struct list_item * current = first; while ((current->next != NULL) && (current->next->value < x)) { @@ -44,15 +55,17 @@ void input_sorted(struct list_item *first, int x){ current->next = new_item; } + void clear(struct list_item *first){ struct list_item * current; while (first->next != NULL) { - current = first; - first = current->next; + current = first->next; + first->next = current->next; free(current); } } + int main(int argc, char ** argv) { struct list_item root; @@ -64,6 +77,19 @@ int main(int argc, char ** argv) input_sorted(&root, 4); input_sorted(&root, 3); input_sorted(&root, 1); +// print(&root); + + append(&root, 16); + append(&root, 17); + append(&root, 16); +// print(&root); + + prepend(&root, 22); + prepend(&root, 21); + prepend(&root, 20); + + clear(&root); print(&root); + return 0; } diff --git a/ll b/ll new file mode 100755 index 0000000000000000000000000000000000000000..ca338def08a842fb4f9a0a691b01b96c01dc4790 GIT binary patch literal 17088 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 literal 0 HcmV?d00001 -- GitLab