La pile ???

gacki Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -  
gacki Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une question concernant la pile j'essaye de comprendre le fonctionnement du dépilement

je veux savoir est ce que si en veux supprimer un élément qui est par exemple au milieu de la pile il faut supprimer tous se qui est avons puis en supprime celui la mais ici tous les autre élément seront disparu je sais qu'il a une méthode pour conservé ces élément mais se que je veux savoir c'est

est ce que c'est sa le fonctionnement du dépilement <elle détruit tout élément de la pile pour arriver a l'élément qu'on veux supprimer>???

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Le dépilement ne supprime pas les données, tu perds éventuellement les pointeurs qui te permettent d'y accéder, mais à part si tu fais explicitement une libération de la mémoire, les données seront toujours en mémoire.

Ce qu'il faut faire c'est transvaser les éléments en haut de la pile vers une autre pile intermédiaire (éventuellement implicite en utilisant la récursivité), désallouer l'élément du milieu que tu veux supprimer, et remettre par dessus tout ceux que tu avais préalablement dépilé.

Tu n'auras pas de perte de mémoire, excepté bien sûr celui du milieu.

Remarque : une structure de pile n'est pas faite pour ce genre d'opérations. Si tu as besoin de supprimer des éléments en plein milieu, utilises plutôt une liste.
1
gacki Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
 
oooo ... merci beaucoup l'idée d'une deuxième pile ... très bonne idée
0