aboutsummaryrefslogtreecommitdiff
path: root/src/ll.c
diff options
context:
space:
mode:
authorBlake Romero <blake@blkrom.com>2025-10-10 17:43:54 +0100
committerBlake Romero <blake@blkrom.com>2025-10-10 17:43:54 +0100
commit4e36efdf20ed9f7be0c98743b6ddfa54f472c849 (patch)
tree9803384bb412df2c09df4eded432c30c09a64044 /src/ll.c
parentb188817ad2a0c26264b742fed55320260650ecb7 (diff)
Rename & refactor list data structure
Diffstat (limited to 'src/ll.c')
-rw-r--r--src/ll.c119
1 files changed, 0 insertions, 119 deletions
diff --git a/src/ll.c b/src/ll.c
deleted file mode 100644
index ef5e021..0000000
--- a/src/ll.c
+++ /dev/null
@@ -1,119 +0,0 @@
-// Implementation of a Linked List
-//
-// TODO: recursive implementation for llfree
-//
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "ll.h"
-
-Node* llnode(int value) {
- Node* n = (Node*) malloc(sizeof(Node));
- n->value = value;
- n->next = NULL;
- return n;
-}
-
-void llprint(Node* head) {
- Node* node = head;
- printf("[ ");
- while (node != NULL) {
- printf("%i ", node->value);
- node = node->next;
- }
- printf("]\n");
- free(node);
-}
-
-void llvprint(Node* head) {
- Node* node = head;
- while (node != NULL) {
- printf("[*] %i\n", node->value);
- node = node->next;
- printf(" |\n");
- }
- printf("[/] %s\n", (char*) node);
-}
-
-int lllength(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);
- n->next = *head;
- *head = n;
-}
-
-int llpop(Node** head) {
- int val = (*head)->value;
- *head = (*head)->next;
- return val;
-}
-
-void llappend(Node* head, int value) {
- Node* n = head;
- while (n->next != NULL) n = n->next;
- n->next = llnode(value);
-}
-
-void llinsert(Node** head, int value, int index) {
- Node* n = *head;
- Node* cur = NULL;
- Node* node = llnode(value);
- int i = 0;
- while (n->next != NULL && i < index) {
- cur = n;
- n = n->next;
- ++i;
- }
- cur->next = node;
- node->next = n;
-}
-
-void llfree(Node** head) {
- while (*head != NULL) {
- Node* n = *head;
- *head = (*head)->next;
- free(n);
- }
- *head = NULL;
-}
-
-int llrmlast(Node** head) {
- Node* n = *head;
- Node* cur = NULL;
- while (n->next != NULL) {
- cur = n;
- n = n->next;
- }
- int val = n->value;
- cur->next = NULL;
- free(n);
- return val;
-}
-
-int llrm(Node** head, int index) {
- Node* n = *head;
- Node* cur = NULL;
- if (index == -1) {
- while (n->next != NULL) {
- cur = n;
- n = n->next;
- }
- } else {
- int i = 0;
- while (n->next != NULL && i < index) {
- cur = n;
- n = n->next;
- ++i;
- }
- }
- cur->next = n->next;
- int val = n->value;
- free(n);
- return val;
-}