Bonjour,
j'ai un petit soucis au niveau de la suppresion de la premiere instance d'une donnée dans une liste :
voici les structures :
et voici ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 typedef struct Element Element; struct Element { void * contenu; Element * suivant; }; typedef struct Liste Liste; struct Liste { Element *premier; Element *dernier; };
Ça compile mais ne fonctionne pas .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 void supprimerdonnee(Liste *liste, void *donnee){ Element *elem = liste->premier; if (liste->premier == NULL){ exit(EXIT_FAILURE); } if (elem->contenu == donnee){ liste->premier = elem->suivant; free(elem); } while(elem->suivant != NULL){ if (elem->suivant->contenu == donnee){ Element *element = elem->suivant; elem->suivant = element->suivant; free(element); } elem = elem->suivant; } }
Merci de vos réponses.
Cordialement.
PS : ma structure de chaîne à deux pointeurs mais je n'en utilise qu'un car je suis pas encore assez à l'aise avec les pointeurs.
Partager