diff options
| author | Mikkel Thestrup <mithe24@student.sdu.dk> | 2025-11-30 14:24:52 +0100 |
|---|---|---|
| committer | Mikkel Thestrup <mithe24@student.sdu.dk> | 2025-11-30 14:24:52 +0100 |
| commit | a23cb6d6f011950b11789898c10e63f4473a5200 (patch) | |
| tree | e6f0c3c85e240848a03909639ac227db05f7da2a /src/LinkedList.c | |
| parent | 06be9b97b3cc575c69d037d6ba09950c0a53d7f3 (diff) | |
| download | cycle-detector-a23cb6d6f011950b11789898c10e63f4473a5200.tar.gz cycle-detector-a23cb6d6f011950b11789898c10e63f4473a5200.zip | |
Updated every file and function to follow style guide
Diffstat (limited to 'src/LinkedList.c')
| -rw-r--r-- | src/LinkedList.c | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/src/LinkedList.c b/src/LinkedList.c deleted file mode 100644 index aac05d6..0000000 --- a/src/LinkedList.c +++ /dev/null @@ -1,86 +0,0 @@ -#include "LinkedList.h" -#include <stdlib.h> - -LinkedList *linkedlist_new(void) { - LinkedList *ll = malloc(sizeof(LinkedList)); - if (!ll) return NULL; - - ll->head = NULL; - ll->tail = NULL; - ll->size = 0; - - return ll; -} - -void linkedlist_delete(LinkedList *ll) { - LinkedListNode *node = ll->head; - LinkedListNode *next; - - while (node) { - next = node->next; - free(node); - node = next; - } - - free(ll); -} - -LinkedListNode *linkedlist_append(LinkedList *ll, void *elem) { - LinkedListNode *new_node = malloc(sizeof(LinkedListNode)); - if (!new_node) return NULL; - - new_node->data = elem; - new_node->next = NULL; - if (!ll->head) { - new_node->prev = NULL; - ll->head = new_node; - ll->tail = new_node; - } else { - ll->tail->next = new_node; - new_node->prev = ll->tail; - ll->tail = new_node; - } - - ll->size++; - return new_node; -} - -void *linkedlist_popfront(LinkedList *ll) { - if (!ll->head) return NULL; - - void *elem = ll->head->data; - LinkedListNode *node = ll->head; - ll->head = ll->head->next; - - ll->size--; - free(node); - return elem; -} - -LinkedListNode *linkedlist_find(LinkedList *ll, void *elem) { - if (!ll->head) return NULL; - - LinkedListNode *node = ll->head; - while (node) { - /* !NOTE should use a given comparator function - * instead of '==' operator */ - if (node->data == elem) return node; - node = node->next; - } - - return NULL; // Couldn't find the element -} - -void *linkedlist_remove(LinkedList *ll, LinkedListNode *node) { - void *elem = node->data; - - if (node->prev) node->prev->next = node->next; - else ll->head = node->next; - - if (node->next) node->next->prev = node->prev; - else ll->tail = node->prev; - - free(node); - ll->size--; - return elem; -} |