Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Parcours et Affichage d'une Liste Chaînée | Implémentation des Structures de Données
Maîtriser les Structs en C

bookParcours et Affichage d'une Liste Chaînée

Après avoir appris à créer et à connecter des nœuds, il est nécessaire de vérifier que cette liste fonctionne correctement !

Pour cela, écrivons une fonction simple qui affichera toute la liste.

La fonction acceptera un pointeur vers la zone mémoire où est stocké le nœud tête (premier) de la liste.

void printList(struct Node* head) {}

Ensuite, un nœud temporaire current sera créé, avec lequel nous parcourrons toute la liste. Le contenu du nœud current sera égal au contenu du nœud actuel de la liste.

struct Node* current = head;

Pour parcourir la liste, nous utilisons la boucle while(){} avec la condition nécessaire, à savoir, jusqu'à ce qu'un nœud soit trouvé dont le champ next est NULL.

Note
Remarque

Le nœud temp (temporaire) joue le rôle de nœud tampon. Il est utilisé pour stocker temporairement (et supprimer) le contenu du nœud actuel. Si nous effaçons immédiatement le nœud actuel, nous perdrons la connexion avec le nœud suivant, ce qui signifie que l'accès à la liste sera perdu.

while (current != NULL) { }
printf("\n");

À l'intérieur de la boucle, nous afficherons le contenu du champ data du nœud actuel et modifierons le champ next pour passer au nœud suivant.

printf("%d ", current->data);
current = current->next;

Dès qu'un nœud est trouvé dont le champ next est égal à NULL, la boucle cesse d'afficher le contenu des nœuds et la fonction se termine.

Tâche

Swipe to start coding

Implémenter une liste chaînée simple avec allocation dynamique de mémoire. L'objectif est de compléter les fonctions printList et freeList.

  1. Implémenter une fonction printList avec un paramètre unique struct Node* head.

    • À l'intérieur de printList, déclarer une variable current et l'initialiser à head.
    • Utiliser une boucle while pour itérer tant que current n'est pas NULL.
    • À chaque itération, afficher le champ data de current et déplacer current vers le nœud suivant.
    • Après la boucle, afficher un caractère de nouvelle ligne pour séparer la sortie.
  2. À l'intérieur de freeList, déclarer une variable current et l'initialiser à head.

    • Utiliser une boucle while pour itérer tant que current n'est pas NULL.
    • À l'intérieur de la boucle, stocker current dans une variable temporaire temp.
    • Déplacer current vers le nœud suivant.
    • Libérer la mémoire allouée pour temp.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 4
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

close

bookParcours et Affichage d'une Liste Chaînée

Glissez pour afficher le menu

Après avoir appris à créer et à connecter des nœuds, il est nécessaire de vérifier que cette liste fonctionne correctement !

Pour cela, écrivons une fonction simple qui affichera toute la liste.

La fonction acceptera un pointeur vers la zone mémoire où est stocké le nœud tête (premier) de la liste.

void printList(struct Node* head) {}

Ensuite, un nœud temporaire current sera créé, avec lequel nous parcourrons toute la liste. Le contenu du nœud current sera égal au contenu du nœud actuel de la liste.

struct Node* current = head;

Pour parcourir la liste, nous utilisons la boucle while(){} avec la condition nécessaire, à savoir, jusqu'à ce qu'un nœud soit trouvé dont le champ next est NULL.

Note
Remarque

Le nœud temp (temporaire) joue le rôle de nœud tampon. Il est utilisé pour stocker temporairement (et supprimer) le contenu du nœud actuel. Si nous effaçons immédiatement le nœud actuel, nous perdrons la connexion avec le nœud suivant, ce qui signifie que l'accès à la liste sera perdu.

while (current != NULL) { }
printf("\n");

À l'intérieur de la boucle, nous afficherons le contenu du champ data du nœud actuel et modifierons le champ next pour passer au nœud suivant.

printf("%d ", current->data);
current = current->next;

Dès qu'un nœud est trouvé dont le champ next est égal à NULL, la boucle cesse d'afficher le contenu des nœuds et la fonction se termine.

Tâche

Swipe to start coding

Implémenter une liste chaînée simple avec allocation dynamique de mémoire. L'objectif est de compléter les fonctions printList et freeList.

  1. Implémenter une fonction printList avec un paramètre unique struct Node* head.

    • À l'intérieur de printList, déclarer une variable current et l'initialiser à head.
    • Utiliser une boucle while pour itérer tant que current n'est pas NULL.
    • À chaque itération, afficher le champ data de current et déplacer current vers le nœud suivant.
    • Après la boucle, afficher un caractère de nouvelle ligne pour séparer la sortie.
  2. À l'intérieur de freeList, déclarer une variable current et l'initialiser à head.

    • Utiliser une boucle while pour itérer tant que current n'est pas NULL.
    • À l'intérieur de la boucle, stocker current dans une variable temporaire temp.
    • Déplacer current vers le nœud suivant.
    • Libérer la mémoire allouée pour temp.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 4
single

single

some-alt