/* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Avril 2005 */ public class Pile { /* Tableau de stockage des objets empiles */ public Object [] t; /* Nombre maximum d'objets empilables (taille de t) */ int tmax; /* Nombre d'objets empiles dans la pile */ int sp; /* Deux constructeurs */ /* - sans parametre -> reservation d'un tableau */ /* de stockage pour 10 objets */ /* - avec un parametre entier -> reservation */ /* d'un tableau de cette taille pour le stockage */ /* des objets empiles */ public Pile() { t = new Object[10]; tmax = 10; sp = 0; } public Pile(int taille) { t = new Object[taille]; tmax = taille; sp = 0; } /* Methode d'empilage d'un objet */ /* faux retourne s'il n'y a plus de place, vrai sinon */ public boolean empiler(Object o) { if ( sp < tmax ) { t[sp] = o; sp++; return(true); } else return(false); } /* Methode de depilage d'un objet */ /* null retourne s'il n'y a pas d'objet dans la pile */ public Object depiler() { if ( sp > 0 ) { sp--; return(t[sp]); } else return(null); } /* Test si la pile est vide */ public boolean pileVide() { return(sp == 0); } /* Surcharge de la methode toString */ public String toString() { String s = new String(); if ( sp > 0 ) { s += t[0]; for ( int i = 1 ; i < sp ; i++ ) s += (","+t[i]); } return("["+s+"] "+sp+" "+tmax); } }