[C] Supprimer premier element liste chainée
karlX
-
JooS Messages postés 2468 Date d'inscription Statut Membre Dernière intervention -
JooS Messages postés 2468 Date d'inscription Statut Membre Dernière intervention -
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
- Liste déroulante excel - Guide
- Supprimer une page word - Guide
- Liste déroulante en cascade - Guide
- Impossible de supprimer un fichier - 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 -.- ...