public class Pile { /* * les éléments de la pile seront rangés dans un tableau */ public static int [] tab = new int[10]; /* * la hauteur de la pile est utilisée ici comme un indice dans le tableau * qui est donc constitué des éléments effectivements utilisés par la pile * et des éléments de "réserve" (qui pourront être utilisés si nécessaire). * Mais la pile n'est constituée que des éléments d'indice 0 à hauteur-1 */ public static int hauteur = 0; public static void main(String []a) { empiler(100); empiler(200); empiler(300); /* * Les éléments sont dépilés dans le sens inverse de leur empilement */ while (!estVide()) { int x = depiler(); System.out.println("J'ai trouvé : "+x+" dans la pile"); } } /* * Empiler consiste à utiliser un élément de réserve pour stocker la * valeur souhaitée, et déplacer en conséquence la hauteur */ public static void empiler(int valeur) { tab[hauteur] = valeur; hauteur += 1; } /* * Dépiler consiste à augmenter la réserve en déplacant la hauteur d'un * cran en arrière */ public static int depiler() { hauteur -= 1; return tab[hauteur]; } /* * Ce prédicat indique que la réserve est pleine (ou la pile vide :-) */ public static boolean estVide() { return hauteur==0; } }