From cb6d978cadb9a88f31f8269d2a726434b59bfbbc Mon Sep 17 00:00:00 2001 From: clfreville2 Date: Fri, 14 Oct 2022 09:48:26 +0200 Subject: [PATCH] =?UTF-8?q?list:=20Permet=20d'ins=C3=A9rer=20et=20de=20r?= =?UTF-8?q?=C3=A9cup=C3=A9rer=20la=20taille?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linked-list/Makefile | 5 +++++ linked-list/src/linkedList.c | 21 +++++++++++++++++++++ linked-list/src/linkedList.h | 4 ++++ linked-list/test/testLinkedList.c | 3 +++ 4 files changed, 33 insertions(+) diff --git a/linked-list/Makefile b/linked-list/Makefile index 6d6ed93..74b3889 100644 --- a/linked-list/Makefile +++ b/linked-list/Makefile @@ -14,3 +14,8 @@ build/testLinkedList.o: test/testLinkedList.c src/linkedList.h | build build: mkdir build + +clean: + rm -rf testLinkedList build + +.PHONY: all test clean diff --git a/linked-list/src/linkedList.c b/linked-list/src/linkedList.c index e98e763..afbf649 100644 --- a/linked-list/src/linkedList.c +++ b/linked-list/src/linkedList.c @@ -1,11 +1,32 @@ #include "linkedList.h" +#include #include LinkedList createLinkedList(void) { return NULL; } +void insertAtListHead(LinkedList *list, int value) { + struct list_node *node = malloc(sizeof(struct list_node)); + if (node == NULL) { + fprintf(stderr, "Memory exhausted!\n"); + abort(); + } + node->value = value; + node->next = *list; + *list = node; +} + +int linkedListLength(LinkedList list) { + int n = 0; + while (list != NULL) { + n += 1; + list = list->next; + } + return n; +} + void freeLinkedList(LinkedList *list) { struct list_node *next; struct list_node *node = *list; diff --git a/linked-list/src/linkedList.h b/linked-list/src/linkedList.h index c50610f..6107f87 100644 --- a/linked-list/src/linkedList.h +++ b/linked-list/src/linkedList.h @@ -8,6 +8,10 @@ typedef struct list_node { LinkedList createLinkedList(void); +void insertAtListHead(LinkedList *list, int value); + +int linkedListLength(LinkedList list); + void freeLinkedList(LinkedList *list); #endif // MY_LINKED_LIST_H diff --git a/linked-list/test/testLinkedList.c b/linked-list/test/testLinkedList.c index 684fb78..4b0ffa4 100644 --- a/linked-list/test/testLinkedList.c +++ b/linked-list/test/testLinkedList.c @@ -5,6 +5,9 @@ int main(void) { LinkedList list = createLinkedList(); + insertAtListHead(&list, 5); + insertAtListHead(&list, 9); + assert(linkedListLength(list) == 2); freeLinkedList(&list); printf("Success!\n"); return 0;