Online C Compiler
Ouvrir dans le compilateur

Édition pédagogique en français

Liste simplement chaînée en C

Créez, parcourez et libérez des nœuds reliés par des pointeurs.

Ouvrir dans le compilateur

Liste simplement chaînée en C
Créez, parcourez et libérez des nœuds reliés par des pointeurs.

Chaque nœud stocke une valeur et un pointeur vers le suivant. head désigne le premier ; NULL marque la fin ou une liste vide. Les nœuds ne doivent pas nécessairement occuper des adresses consécutives.

Vérifiez malloc avant toute écriture. À l’insertion ou à la suppression, préservez le lien avec le reste et actualisez head si le premier nœud change. Une recherche par valeur parcourt la liste en O(N).

Pour libérer la liste, mémorisez le suivant avant free sur le nœud courant. Testez liste vide, un seul nœud et plusieurs nœuds. Ne lisez aucun champ après la libération.

Code source

#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node *next;
} Node;

Node* insertHead(Node *head, int val) {
    Node *newNode = (Node *)malloc(sizeof(Node));
    newNode->data = val;
    newNode->next = head;
    return newNode;
}

void printList(Node *head) {
    Node *curr = head;
    while (curr != NULL) {
        printf("%d -> ", curr->data);
        curr = curr->next;
    }
    printf("NULL\n");
}

void freeList(Node *head) {
    Node *curr = head;
    while (curr != NULL) {
        Node *temp = curr;
        curr = curr->next;
        free(temp);
    }
}

int main() {
    Node *head = NULL;
    head = insertHead(head, 30);
    head = insertHead(head, 20);
    head = insertHead(head, 10);

    printf("Linked List: ");
    printList(head);

    freeList(head);
    return 0;
}
Ouvrir dans le compilateur

Résultat attendu

Linked List: 10 -> 20 -> 30 -> NULL

Questions fréquentes

Pourquoi le code et certains résultats restent-ils en anglais ?

Les mots-clés C, les identifiants, les commentaires du programme et les sorties attendues restent ceux de la version originale pour conserver un code exécutable et des tests cohérents. Les explications et les consignes sont traduites.