désallocation dynamique .
bonjour
Dans le code ci dessous, je ne comprends pas la fonction "viderPile". Celle-ci sert à vider la pile entièrement. Mais ce que fait la fonction, c'est mettre sommet à -1.
Il semble donc que le vidage de la pile se fasse automatiquement.
sommet est l'indice qui permet de repérer des éléments dans un tableau, si on le met à une valeur en dessous de zéro, cela signifie t il que toutes les valeurs sont supprimées?
Ce que je ne comprends pas non plus, c'est comment le compilateur comprends qu'en fixant sommet à -1, on vide toute la pile?
je vous remercie
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public class Pile{
private int sommet;
private int[] element;
private void erreur (String mes){
System.out.println("***erreur"+mes);
}
public Pile(int max){
sommet=-1;
element=new int[max];
}
public boolean pileVide(){
return sommet=-1;
}
public void empiler(int v){
if(sommet<element.length-1){
sommet++;
element[sommet]=v;
}
else {
erreur("pile saturée");
}
public void depiler(){
int v=0;
if(!pileVide()){
v=element[sommet];
sommet--;
}
else{
erreur("Pile vide");
}return v;
}
public void viderPile(){
sommet=-1;
}
} |