probleme de suppression du premier element d'une liste chainee
Bonjours,
voila lorsque je supprime le premier maillon de ma liste, ce maillon n'est pas supprimer. Peu importe la manière que je fasse le problème subsiste toujours
voici la fonction du suppression :
Code:
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 42 43 44 45 46 47 48
|
void supprimer(livre *debut,int *nb)
{
char titre[61],titretmp[61],tmp[2];
int i;
livre *encourt,*suivant,*precedent;
printf("\nEntrez le titre du livre :");
gets(titre);
encourt = debut;
for(i=0;i<nb-1;i++)
{
if((strcmp(titre,encourt->titre) == 0) && (i==0))
{
debut = encourt->suivant;
free(encourt);
(*nb) = (*nb) - 1;
if((*nb) == 1)
{
debut->suivant = NULL;
}
break;
}
if(strcmp(titre,encourt->titre)==0)
{
suivant = encourt->suivant;
precedent->suivant = suivant;
free(encourt);
(*nb) = (*nb) - 1;
break;
}
if((strcmp(titre,encourt->titre)==0) && (encourt->suivant == NULL))
{
precedent->suivant = NULL;
free(encourt);
(*nb) = (*nb) - 1;
break;
}
precedent = encourt;
encourt = encourt->suivant;
}
} |