55 lines
1.4 KiB
Java
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;
|
||
|
}
|
||
|
|
||
|
}
|