diff options
| author | Blake Romero <blake@blkrom.com> | 2025-10-10 17:43:54 +0100 |
|---|---|---|
| committer | Blake Romero <blake@blkrom.com> | 2025-10-10 17:43:54 +0100 |
| commit | 4e36efdf20ed9f7be0c98743b6ddfa54f472c849 (patch) | |
| tree | 9803384bb412df2c09df4eded432c30c09a64044 /src | |
| parent | b188817ad2a0c26264b742fed55320260650ecb7 (diff) | |
Rename & refactor list data structure
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/list.c (renamed from src/ll.c) | 32 | ||||
| -rw-r--r-- | src/lib/list.h (renamed from src/ll.h) | 30 |
2 files changed, 30 insertions, 32 deletions
diff --git a/src/ll.c b/src/lib/list.c index ef5e021..26c8cc1 100644 --- a/src/ll.c +++ b/src/lib/list.c @@ -1,20 +1,20 @@ // Implementation of a Linked List // -// TODO: recursive implementation for llfree +// TODO: recursive implementation for list_free() // #include <stdio.h> #include <stdlib.h> -#include "ll.h" +#include "list.h" -Node* llnode(int value) { +Node* node_init(int value) { Node* n = (Node*) malloc(sizeof(Node)); n->value = value; n->next = NULL; return n; } -void llprint(Node* head) { +void list_print(Node* head) { Node* node = head; printf("[ "); while (node != NULL) { @@ -25,7 +25,7 @@ void llprint(Node* head) { free(node); } -void llvprint(Node* head) { +void list_vprint(Node* head) { Node* node = head; while (node != NULL) { printf("[*] %i\n", node->value); @@ -35,35 +35,35 @@ void llvprint(Node* head) { printf("[/] %s\n", (char*) node); } -int lllength(Node* head) { +int list_length(Node* head) { Node* n = head; int i = 0; for (; n != NULL; ++i) n = n->next; return i; } -void llpush(Node** head, int value) { - Node* n = llnode(value); +void list_push(Node** head, int value) { + Node* n = node_init(value); n->next = *head; *head = n; } -int llpop(Node** head) { +int list_pop(Node** head) { int val = (*head)->value; *head = (*head)->next; return val; } -void llappend(Node* head, int value) { +void list_append(Node* head, int value) { Node* n = head; while (n->next != NULL) n = n->next; - n->next = llnode(value); + n->next = node_init(value); } -void llinsert(Node** head, int value, int index) { +void list_insert(Node** head, int value, int index) { Node* n = *head; Node* cur = NULL; - Node* node = llnode(value); + Node* node = node_init(value); int i = 0; while (n->next != NULL && i < index) { cur = n; @@ -74,7 +74,7 @@ void llinsert(Node** head, int value, int index) { node->next = n; } -void llfree(Node** head) { +void list_free(Node** head) { while (*head != NULL) { Node* n = *head; *head = (*head)->next; @@ -83,7 +83,7 @@ void llfree(Node** head) { *head = NULL; } -int llrmlast(Node** head) { +int list_rmlast(Node** head) { Node* n = *head; Node* cur = NULL; while (n->next != NULL) { @@ -96,7 +96,7 @@ int llrmlast(Node** head) { return val; } -int llrm(Node** head, int index) { +int list_rm(Node** head, int index) { Node* n = *head; Node* cur = NULL; if (index == -1) { diff --git a/src/ll.h b/src/lib/list.h index 9286dfd..58a7751 100644 --- a/src/ll.h +++ b/src/lib/list.h @@ -1,7 +1,5 @@ -#ifndef LL_H -#define LL_H - -#define NEW_NODE llnode(); +#ifndef LIST_H +#define LIST_H #include <stdio.h> #include <stdlib.h> @@ -13,42 +11,42 @@ typedef struct Node { } Node; // Create & initialise a new node -Node* llnode(int value); +Node* node_init(int value); // Print linked list values -void llprint(Node* head); -void llvprint(Node* head); +void list_print(Node* head); +void list_vprint(Node* head); // Return number of nodes in list // O(n) -int lllength(Node* head); +int list_length(Node* head); // Prepend a value to the list // O(1) -void llpush(Node** head, int value); +void list_push(Node** head, int value); // Pop (remove) first node // O(1) -int llpop(Node** head); +int list_pop(Node** head); // Append value to the end of the list // O(n) -void llappend(Node* head, int value); +void list_append(Node* head, int value); // Insert a value to the list at index // O(n) -void llinsert(Node** head, int value, int index); +void list_insert(Node** head, int value, int index); // Free nodes from memory // O(n) -void llfree(Node** head); +void list_free(Node** head); // Remove last node // O(n) -int llrmlast(Node** head); +int list_rmlast(Node** head); // Remove node at index // O(n) -int llrm(Node** head, int index); +int list_rm(Node** head, int index); -#endif //LL_H +#endif //LIST_H |
