Files
DEV/DEV3.2/TP04/02_Chaine/PileChainee.java

52 lines
993 B
Java
Raw Normal View History

2025-11-03 11:08:37 +01:00
public class PileChainee<E> implements Pile<E> {
protected E valeur;
protected PileChainee<E> suivant;
public PileChainee() {
this.valeur = null;
this.suivant = null;
}
public PileChainee(E element) {
this.valeur = element;
this.suivant = null;
}
@Override
public void addFirst(E element) {
if (this.isEmpty()) {
this.valeur = element;
} else {
PileChainee<E> nouveau = new PileChainee<>();
nouveau.valeur = this.valeur;
nouveau.suivant = this.suivant;
this.valeur = element;
this.suivant = nouveau;
}
}
@Override
public E removeFirst() {
if (this.isEmpty()) {
throw new IllegalStateException("Pile vide");
} else {
if (this.suivant == null) {
E temp = this.valeur;
this.valeur = null;
return temp;
} else {
E temp = this.valeur;
this.valeur = this.suivant.valeur;
this.suivant = this.suivant.suivant;
return temp;
}
}
}
@Override
public boolean isEmpty() {
return (this.valeur == null);
}
}