Bonsoir,
j un problème dans ma fonction depiler code en c++
j fais une pile avec une liste chainee et la suppression et lajout se fais au dernier element de la pile (principe de la pile comme vous savez)
alors mon probleme c quand je fais une boucle while( !pile-vide()) cad tant que la pile n'est pa vide alors depiler
mais il me donne une boucle infinie donc il ne depile pas
donc le probleme est dans ma fonction depiler()
si qlqun peut m'aider a savoir ou est le probleme je serai tres reconnaissante
voici ma fonction depiler:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 string Pile::depiler(string c) { Chainon* p; p=ptete; if(ptete== NULL) cout<<"la pile est vide "<<endl; else{ if(p->getsuiv()==NULL){ c=p->getmot(); p=NULL;} else { cout<<"depiler depiler depiler"<<endl; while(p->getsuiv()->getsuiv()!=NULL) { p=p->getsuiv(); } c=p->getmot(); p->setsuiv(NULL); }} return c;//je retourne l'element qui a ete depiler c un string };
Partager