salut a tout le monde .
j'ai un mini-projet a réaliser en C(avec les listes chaines) mais je suis bloqué depuis 2 jours sur une la fonction de suppression d'un element de la liste .
voici le code de ma fonction :
pour vous donnez une idée sur cette fonction et ben elle marche lors de suppression d'un nombre en tete de liste mais pour le milieu ou le fin elle ne le supprime pas mais au lieu de ça elle rend le nombre suivant = 0 .
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
24
25
26
27 el* supprimer(el *liste_chaine,int nombre) { el *tmp = NULL ; el *liste_chaine_copie = liste_chaine ; if(liste_chaine != NULL && liste_chaine->age == nombre )//notre nombre se trouve en tete de liste { liste_chaine = liste_chaine->next ; return liste_chaine; } else if( liste_chaine != NULL && liste_chaine->age != nombre )//notre nombre se trouve apres la tete de la liste { while(liste_chaine != NULL) { if( liste_chaine->age == nombre ) { tmp = liste_chaine ; tmp = tmp->next ; liste_chaine = tmp ; if(liste_chaine == NULL)//ce if pour terminer le while si on arrive a la fin de la liste goto here; } liste_chaine = liste_chaine->next ; } here : return liste_chaine_copie; } }
exemple voici les elements de ma liste :1-2-3-4-5.
si je donne a la fonction le nombre 3 pour le supprimer j'ai ça :1-2-3-0-5.
alors merci pour vos réponses et a plus.
Partager