list: Permet d'insérer et de récupérer la taille

main
Clément FRÉVILLE 3 years ago
parent 03b7ee8494
commit cb6d978cad

@ -14,3 +14,8 @@ build/testLinkedList.o: test/testLinkedList.c src/linkedList.h | build
build: build:
mkdir build mkdir build
clean:
rm -rf testLinkedList build
.PHONY: all test clean

@ -1,11 +1,32 @@
#include "linkedList.h" #include "linkedList.h"
#include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
LinkedList createLinkedList(void) { LinkedList createLinkedList(void) {
return NULL; 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) { void freeLinkedList(LinkedList *list) {
struct list_node *next; struct list_node *next;
struct list_node *node = *list; struct list_node *node = *list;

@ -8,6 +8,10 @@ typedef struct list_node {
LinkedList createLinkedList(void); LinkedList createLinkedList(void);
void insertAtListHead(LinkedList *list, int value);
int linkedListLength(LinkedList list);
void freeLinkedList(LinkedList *list); void freeLinkedList(LinkedList *list);
#endif // MY_LINKED_LIST_H #endif // MY_LINKED_LIST_H

@ -5,6 +5,9 @@
int main(void) { int main(void) {
LinkedList list = createLinkedList(); LinkedList list = createLinkedList();
insertAtListHead(&list, 5);
insertAtListHead(&list, 9);
assert(linkedListLength(list) == 2);
freeLinkedList(&list); freeLinkedList(&list);
printf("Success!\n"); printf("Success!\n");
return 0; return 0;

Loading…
Cancel
Save