#include using namespace std ; struct pile { int valeur ; pile *suivant; }; class Objet_Pile { private : int nb_elem ; pile *debut ; public : Objet_Pile(); void affichage(); void remplir(int elem); int depiler(); bool pile_vide(); int get_nb_elem(); }; int Objet_Pile::get_nb_elem() { return nb_elem ; } Objet_Pile::Objet_Pile() { nb_elem = 0 ; debut=NULL ; } bool Objet_Pile::pile_vide() { int i = get_nb_elem() ; if (i==0) { cout << "Pile vide, impossible de dépiler plus" << endl ; return false ; } else { cout << "On peut encore dépiler" << endl ; return true; } } void Objet_Pile::remplir(int elem) { int i = get_nb_elem(); if (i==0) { pile *tmp = new pile(); (*tmp).valeur=elem; (*tmp).suivant=0; debut=tmp ; nb_elem++; } // Vu que c'est simplemement chaine pas besoin de prec else { pile *tmp = new pile(); //pile *prec = new pile(); tmp = debut ; while ((*tmp).suivant != NULL) { //prec = tmp ; tmp = (*tmp).suivant ; } (*tmp).valeur=elem; (*tmp).suivant=0; nb_elem++ ; } } void Objet_Pile::affichage() { pile *tmp=debut; while(tmp != NULL) { cout << (*tmp).valeur << "\t"; tmp = (*tmp).suivant; } cout << endl; } int main() { Objet_Pile a ; a.remplir(5); a.remplir(4); a.remplir(6); a.affichage(); return 0 ; }