C'est géré ainsi:
for (current=liste, previous=NULL;
current && current->mot && !strcmp(mot, current->mot);
Si ton mot est en tete de liste, tu va t'arreter tout de suite, car strcmp(mot, current->mot) renvoie 0.
A ce stade, tu as donc current=liste et previous=NULL
Cas qu'on considere ici:
if (current && current->mot)
{
if (previous)
previous->next=current->next;
mais tu as raison, dans l'algo, il faut remettre liste a l'élément qui suit la tete de liste (et s'il n'y en a pas, la liste vas être mise a nil, qui est ce que l'on veut).
et il faudrait donc mieux réécrire le bout correspondant de l'algo comme:
Code :
- if (previous)
- previous->next=current->next;
- else
- liste = current->next;
- free(current);
|
J'ai été mettre a jour mon post précédent à ce sujet.
A+,
Message édité par gilou le 16-12-2007 à 16:59:26
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --