From 30efd857c1268f5f9198835d4a3f2bfcc2ea8ade Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 3 Apr 2026 17:20:49 +0200 Subject: [PATCH] test double.c --- .../Fundamentals/double/double.c | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/Chains_across_the_Island/Fundamentals/double/double.c b/Chains_across_the_Island/Fundamentals/double/double.c index 6a14ebc..d5c2b1e 100644 --- a/Chains_across_the_Island/Fundamentals/double/double.c +++ b/Chains_across_the_Island/Fundamentals/double/double.c @@ -22,19 +22,15 @@ int dlist_insert(struct dlist **l, size_t index, int e) { if(!l) return 1; - struct dlist *new_node = malloc(sizeof(struct dlist)); - if(!new_node) return 1; + //struct dlist *new_node = malloc(sizeof(struct dlist)); + //if(!new_node) return 1; //struct dlist *tmp = *l; if(index == 0){ - new_node->prev = NULL; - new_node->next = *l; - new_node->data = e; - //new_node->next->prev = new_node; - - //dlist_append(*l, e); + *l = dlist_append(*l, e); + if(!l) return 1; return 0; } @@ -48,14 +44,15 @@ int dlist_insert(struct dlist **l, size_t index, int e) if(!tmp) return 1; - //struct dlist *new_node = malloc(sizeof(struct dlist)); - //if(!new_node) return 1; + struct dlist *new_node = malloc(sizeof(struct dlist)); + if(!new_node) return 1; new_node->data = e; - new_node->next = tmp; - tmp->prev->next = new_node; - new_node->prev = tmp->prev; - tmp->prev = new_node; + new_node->next = tmp->next; + new_node->prev = tmp; + + if (tmp->next != NULL) tmp->next->prev = new_node; + tmp->next = new_node; return 0; @@ -65,10 +62,10 @@ struct dlist *dlist_delete_at(struct dlist **l, size_t index) { if(!l || *l) return NULL; - struct dlist *old = *l; + struct dlist *old = NULL; if(index == 0){ - old->next->prev = NULL; + old = *l; *l = old->next; return old; @@ -82,6 +79,8 @@ struct dlist *dlist_delete_at(struct dlist **l, size_t index) ind ++; } + + if(ind == index -1){ old = tmp->next;