TP-programmation-orientee-o.../TP08/EnsembleChaineOrdonne.java
2023-06-20 21:02:09 +02:00

55 lines
1.4 KiB
Java

public class EnsembleChaineOrdonne<E> extends EnsembleChaine<E> implements EnsembleOrdonne<E> {
public Comparateur<E> comparateur;
@Override
public int cardinal() {
return super.cardinal();
}
@Override
public boolean estVide() {
return super.estVide();
}
@Override
public boolean contient(E x) {
return super.contient(x);
}
@Override
public void ajouter(E x) {
if (this.estVide()) {
super.premiere = new Cellule<E>(x, null);
} else if ( comparateur.inf(x, super.premiere.element) ) {
Cellule<E> newCellule = new Cellule<E>(x, super.premiere);
super.premiere = newCellule;
} else if (!this.contient(x)){
Cellule<E> curseur = this.premiere;
while (curseur != null && comparateur.inf(x, curseur.element) ) {
curseur = curseur.suivante;
}
curseur.suivante = new Cellule<E>(x, curseur.suivante);
}
}
@Override
public void supprimer(E x) {
super.supprimer(x);
}
@Override
public E min() {
E min = super.premiere.element;
Cellule<E> curseur = this.premiere;
while (curseur != null) {
if ( comparateur.inf(curseur.element, min) ) {
min = curseur.element;
}
curseur = curseur.suivante;
}
return min;
}
}