// ============================================================ // PileBornee_int // ============================================================ #include "pile.h" // ----- implantations ---------------------------------------- // Soit s = taille maximale de la pile à l'initialisation // // elts[ 0] <- dernier = 0 au départ, puis augmente // elts[ 1] // . // . // . // elts[s-1] // <- max = s // // dernier désigne toujours l'index de la prochaine case de // elts à utiliser. PileBornee_int::PileBornee_int(int s) : elts(new int[s]), dernier(0), max(s) {}; PileBornee_int::~PileBornee_int() { delete [] elts; }; PileBornee_int& PileBornee_int::empiler(int e) { if (! est_pleine()) elts[dernier++] = e; return *this; }; PileBornee_int& PileBornee_int::depiler() { if (! est_vide()) dernier--; return *this; }; int PileBornee_int::sommet() { if (dernier) return elts[dernier-1]; }; bool PileBornee_int::est_vide() { return dernier == 0; }; bool PileBornee_int::est_pleine() { return dernier == max; };