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 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
listeObjet supprimer_dans_liste(listeObjet lO, int x)
/* specif : supprime le sommet x dans la liste lO */
{
//fy: pas besoin de deb, tu as toujours l0...
listeObjet tmp = lO, tmp2, deb = lO;
//fearyourself: il faut commencer par tester si l0 == NULL
//si c'est le cas, on retourne NULL...
//fy: Cette partie est juste sauf que tu ne desalloue pas s (nom de l'objet)
//fy: Comment est-ce que tu alloue ces chaines de caracteres?
//fy: Pourquoi som? t'avais x dans ta structure, t'as change ta structure?
if(lO->som == x)
{
tmp = lO->suiv;
free(lO);
return tmp;
}
//fy: Je suis d'accord sur cette boucle
while(tmp->suiv != NULL && tmp->suiv->som != x)
{
tmp = tmp->suiv;
}
//fy: Il faut tester tmp->suiv!=NULL D'ABORD!!!
if(tmp->suiv->som == x)
{
tmp2 = tmp->suiv;
//fy: mauvaise affectation des liens, c'est tmp->suiv que tu veux changer...
tmp = tmp->suiv->suiv;
//fy: meme remarque pour tmp2->s...
free(tmp2);
}
//retourne juste l0....
return deb;
} |
Partager