La suppression
Question
Sur le modèle de la fonction d'insertion, écrivez la fonction de suppression.
La valeur de retour sera un pointeur sur l'élément suivant ou NULL, si l'élément supprimé était le dernier.
Le prototype de la fonction sera : TlisteD suppressionD(TlisteD *ptliste, int i).
Solution
1
TlisteD suppressionD(TlisteD *ptliste, int i){
2
TlisteD courant=*ptliste ;
3
TlisteD pere=NULL ;
4
TlisteD ptaux;
5
// recherche de l'élément6
while(courant !=NULL && courant->val!=i) {
7
pere=courant ;
8
courant=courant->suivant ;
9
}
10
// la valeur existe dans la liste on la supprime11
if(courant){
12
ptaux=courant->suivant;
13
if (NULL==pere) *ptliste=ptaux;
14
else pere->suivant=ptaux ;
15
if(ptaux) ptaux->precedent=pere;
16
free(courant) ; // libération
17
}
18
return ptaux;
19
}