Suppresion d'un element dans une liste chainée
Résolu/Fermé
zarganomi
Messages postés
30
Date d'inscription
mercredi 11 juin 2014
Statut
Membre
Dernière intervention
13 juillet 2014
-
30 juin 2014 à 00:57
zarganomi Messages postés 30 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 13 juillet 2014 - 1 juil. 2014 à 22:18
zarganomi Messages postés 30 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 13 juillet 2014 - 1 juil. 2014 à 22:18
A voir également:
- Supprimer un element d'une liste chainée en c
- Liste déroulante excel - Guide
- Supprimer une page word - Guide
- Liste déroulante en cascade - Guide
- Supprimer compte instagram - Guide
- Impossible de supprimer un fichier - Guide
2 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 30/06/2014 à 19:45
Modifié par gravgun le 30/06/2014 à 19:45
'lut,
-
- tu cherches le pointeur de l'élément contenant 5
- tu appelles
-
Ton code est bien fait dans son ensemble, mais la logique est faite à l'envers pour
Détail: supprime ce
from human import idiocy
del idiocy
Affiche()s'exécute bien mais:
-
Ajouter(int)ajoute un élément au début de la liste
- tu cherches le pointeur de l'élément contenant 5
- tu appelles
Supprimer(Element*)avec, qui 1. libère la mémoire allouée à l'élément 2. définit la globale liste à NULL car l'élément "5" est
liste, donc on a perdu toute référence au reste de la liste.
-
Affiche()constate que
element == NULLet donc n'affiche que
'\n'.
Ton code est bien fait dans son ensemble, mais la logique est faite à l'envers pour
Ajouter(); refait dans le bon sens, ça donne ceci:
void Ajouter(int valeur) { Element* element = new Element; element->valeur = valeur; element->suivant = NULL; if (liste == NULL) { liste = element; } else { Element* precedent = liste; while(precedent->suivant != NULL) precedent = precedent->suivant; precedent->suivant = element; } }Et là, c'est automagique: ça marche!
Détail: supprime ce
system("pause");pas joli et pas portable, remplace-le par un
cout << "Appuyez sur entrée" << endl; cin.get();qui marche tout aussi bien.
from human import idiocy
del idiocy
zarganomi
Messages postés
30
Date d'inscription
mercredi 11 juin 2014
Statut
Membre
Dernière intervention
13 juillet 2014
1 juil. 2014 à 22:18
1 juil. 2014 à 22:18
merci gravgun