Bonjour,

J'écris présentement un petit programme me permettant de trier une liste chaînée en ordre croissant. Je fais ma propre implémentation de cette liste au lieu d'utiliser directement LinkedList. Voici ce que j'ai jusqu'à maintenant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public boolean ajouter(T elt) {
		boolean ajout = false;
		Noeud<T> courant = tete;
		if (!verifierSiExiste(elt)) {
			if (estVide()
					|| elt.obtenirPriorite() < tete.getElement()
							.obtenirPriorite()) {
				tete = new Noeud<T>(elt, tete);
			} else {
				while (courant != null) {
					if (elt.obtenirPriorite() > courant.getElement().obtenirPriorite() && !ajout) {
						Noeud<T> unNoeud = new Noeud<T>(elt);
						unNoeud.setSuivant(courant.getSuivant());
						courant.setSuivant(unNoeud); 
						ajout = true;
					} else {
						courant = courant.getSuivant();
					}
				}
			}	
		}
		nbElements++;
		return ajout;
	}
Cependant, lorsque j'ajoute les éléments 4,1,2,5,3, les éléments sont classés selon l'ordre suivant (après l'ajout de tous les éléments): 1,3,5,2,4 au lieu de 1,2,3,4,5.

J'ai vu que je pouvais utiliser l'interface Comparable, mais je ne comprends pas très bien.

Merci