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