From a62ec41abd6c561ae145738e3ff91268870b8886 Mon Sep 17 00:00:00 2001 From: Lucas Date: Thu, 2 Apr 2026 00:31:53 +0200 Subject: [PATCH] ajout --- .../Fundamentals/basics/basics.c | 117 +++++++++++++----- .../Fundamentals/basics/test | Bin 0 -> 16752 bytes 2 files changed, 86 insertions(+), 31 deletions(-) create mode 100755 Chains_across_the_Island/Fundamentals/basics/test diff --git a/Chains_across_the_Island/Fundamentals/basics/basics.c b/Chains_across_the_Island/Fundamentals/basics/basics.c index 999941b..7910492 100644 --- a/Chains_across_the_Island/Fundamentals/basics/basics.c +++ b/Chains_across_the_Island/Fundamentals/basics/basics.c @@ -1,46 +1,101 @@ #include "basics.h" - +#include +#include struct list *list_append(struct list *l, int e) { - //FIXME -} - -size_t list_count(struct list *l) -{ - //FIXME -} - -int list_insert(struct list **l, size_t index, int e) -{ -} - -struct list *list_get(struct list *l, size_t index) -{ + if (!l) return NULL; + struct list *tmp = l; + + struct list *new_node = calloc(1, sizeof(struct list)); + if (!new_node) return NULL; + + new_node->data = e; + if(!tmp) return new_node; + + while (tmp->next) tmp = tmp->next; + tmp->next = new_node; + return l; + +} +size_t list_count(struct list *l){ + + int nbr_nodes = 0; + if (!l) return nbr_nodes; + + struct list *tmp = l; + + //nbr_nodes ++; + while(tmp->next != NULL) { + nbr_nodes ++; + tmp = tmp->next; + } + + return nbr_nodes; - //FIXME } -struct list *list_find(struct list *l, int e) -{ - //FIXME +int list_insert(struct list **l, size_t index, int e){ + + if(!l) return 1; + + if (list_count(*l) < index) return 1; + + struct list *new_node = malloc(sizeof(struct list)); + if(!new_node) return 1; + + new_node->data = e; + + struct list *tmp = *l; + size_t ind = 0; + + while(tmp != NULL && ind next; + ind ++; + } + + new_node->next = tmp->next; + tmp->next = new_node; + + return 0; + } -struct list *list_delete_at(struct list **l, size_t index) -{ - //FIXME +struct list *list_get(struct list *l, size_t index){ + + if(!l) return NULL; + //if(list_count(l) < index) return NULL; + + struct list *tmp = l; + size_t ind = 0; + while(tmp->next != NULL && ind != index){ + tmp = tmp->next; + ind ++; + } + if(ind >= index) return NULL; + return tmp; + } -int list_remove(struct list **l, int e) -{ - //FIXME +void list_destroy(struct list *l){ + + if (!l) return; + list_destroy(l->next); + free(l); } -void list_destroy(struct list *l) +int main(void) { - //FIXME + struct list *l = NULL; + + l = list_append(l, 42); // l = [42] -> NULL + l = list_append(l, 7); // l = [7] -> [42] -> NULL + list_count(NULL); // 0 + list_count(l); // 3 + + // Here, you should call "list_destroy(l);" when it will be implemented to + // prevent any memory leak + + return 0; } -void list_print(struct list *l) -{ - //FIXME -} diff --git a/Chains_across_the_Island/Fundamentals/basics/test b/Chains_across_the_Island/Fundamentals/basics/test new file mode 100755 index 0000000000000000000000000000000000000000..9c3ddc3737a9e44990216f443298fa32367e53c1 GIT binary patch literal 16752 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 literal 0 HcmV?d00001