52 lines
993 B
Java
52 lines
993 B
Java
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);
|
|
}
|
|
|
|
} |