rendered paste body#include <iostream>
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 ;
}