[C] Supprimer premier element liste chainée
karlX
-
JooS Messages postés 2705 Statut Membre -
JooS Messages postés 2705 Statut Membre -
Bonjour,
J'ai une fonction qui est censé supprimer le premier element d'une liste chainée. Elle supprime bien cet element, mais elle m'affiche quand meme un 0.
mon main :
J'ai une fonction qui est censé supprimer le premier element d'une liste chainée. Elle supprime bien cet element, mais elle m'affiche quand meme un 0.
int removeFirst(Element * * head)
{
if(*head != NULL)
{
/* On libère le premier élément */
free(*head);
/* On retourne 0 si tout s'est bien passé */
return 0;
}
else
{
return 1;
}
}
mon main :
int main(int argc, char *argv[])
{
Element * head ;
initList(&head, 0) ;
addFirst(&head, 1);
removeFirst(&head);
showList(&head);
return 0;
}
A voir également:
- Supprimer un element d'une liste en c
- Supprimer rond bleu whatsapp - Guide
- Supprimer liste déroulante excel - Guide
- Supprimer une page word - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Liste déroulante en cascade - Guide
3 réponses
Je suis pas expert, mais tu supprimes le premier élément sans rejoindre les 2 bouts de ta liste non ?
Salut ...
Je pense que c'est normale, vu que la fonction addFirst ajoute un élément en tete de liste ...
Donc normalement, après avoir initialiser et ajouter un élément, ta liste ressemblera a ceci ...
1 -> 0
Le 1 étant le premier élément ...
Donc quand tu supprime le premier élément qui est le 1, il ne restera que le 0.
Apart ça, ta fonction removeFirst est incorrecte, car il faut pas oublier de pointer le head vers le second élément ...
Mettez en résolu quand c'est résolu -.- ...
Je pense que c'est normale, vu que la fonction addFirst ajoute un élément en tete de liste ...
Donc normalement, après avoir initialiser et ajouter un élément, ta liste ressemblera a ceci ...
1 -> 0
Le 1 étant le premier élément ...
Donc quand tu supprime le premier élément qui est le 1, il ne restera que le 0.
Apart ça, ta fonction removeFirst est incorrecte, car il faut pas oublier de pointer le head vers le second élément ...
element *delete; //declaration delete = *head; *head = delete->suiv; // suiv etant le champs pointeur de ta structure. free(delete);
Mettez en résolu quand c'est résolu -.- ...