suppression dans une liste chainée
Bonjour à tous!
je vous expose mon problème:
j'ai une liste doublement chainée
Code:
1 2 3 4 5
| typedef struct strListe{
char car;
struct strListe *suivant;
struct strListe *precedent;
}liste; |
et je ne parviens pas à faire une fonction de suppression d'un élément.
voici ce que j'ai fait:
Code:
1 2 3 4 5 6 7 8
| void Supprimer(liste **victime){
if((*victime)->precedent!=NULL)
(*victime)->precedent->suivant=(*victime)->suivant;
if((*pvictime)->suivant!=NULL)
(*victime)->suivant->precedent=(*victime)->precedent;
free(**victime);
return;
} |
mais cette fonction supprime toute la liste, du debut jusqu'à l'élément passé en paramètre 8O ... et je ne trouve pas mon erreur :?
pourriez-vous me l'indiquer? (oui j'ai cherché avant de poster, non je ne demande pas la solution toute faite :) )
Merci d'avance.