// Pile.cpp #include "Pile.h" // Allocations Pile::Pile(void) { _taille = 0; } //-- Pile::Pile(const Pile& p) { _taille = p._taille; for(int i = 0; i <_taille; i++) _pile[i] = p._pile[i]; } //-- Pile& Pile::operator=(const Pile& p) { if(this != &p) { _taille = p._taille; for(int i = 0; i <_taille; i++) _pile[i] = p._pile[i]; } return *this; } //-- Pile::~Pile(void) { } // Inspecteurs bool Pile::estVide(void) const { return _taille == 0; } //-- bool Pile::estPleine(void) const { return _taille == MAX; } //-- int Pile::sommet(void) const { assert(!estVide()); return _pile[_taille - 1]; } // Manipulateurs void Pile::empiler(int x) { assert(!estPleine()); _pile[_taille++] = x; } //-- int Pile::depiler(void) { assert(!estVide()); return _pile[--_taille]; } // Injection dans un flot ostream& operator<<(ostream& s, const Pile& p) { s << '('; if(!p.estVide()) { for(int i = 0; i < p._taille - 1; i++) { s << p._pile[i] << ','; } s << p._pile[p._taille - 1]; } s << ')'; return s; }