Bonjour,
J'ai un problème que je n'arrive pas à résoudre concernant les listes chainées. J'ai une liste chainée comportant des répétitions et je voudrais enlever ces répetitions tout en classant les valeurs restantes par ordre croissant par une méthode que j'ai appelé clean. J'ai essayé de faire quelque chose mais ça donne rien. Si quelqu'un peut venir à mon secours. En fait, ça oit venir de ma méthode rangeCroissant.
Je met la source ci-dessous.
class Liste {
private Maillon debut;
public Liste() { debut = null;}
public Liste(Maillon d) {debut = d;}
public Maillon lireDebut(){return debut;}
public void ecrireDebut(Maillon d){debut = d;}
public boolean Chercher(int n){
boolean b;
Maillon aux = debut;
while(aux!=null && n!=aux.lireInfo())
aux = aux.lireSuiv();
if(aux!=null) b=true;
else b=false;
return b;
}
public void rangeCroissant(int entier, Maillon temp)
{
Maillon M = new Maillon(entier,null);
if(debut==null)
debut=M;
else
while(suiv!=null && entier<suiv.lireInfo()) {
M.lireSuiv()=suiv.lireInfo();
aux.lireInfo()=M.lireSuiv();
aux=aux.lireSuiv();
}
}
public void clean() {
Maillon temp = debut;
while(temp!=null){
if(!chercher(temp.lireInfo()))
rangeCroissant(temp.lireInfo());
temp=temp.lireSuiv();
}}
public static void main(String args []){
Maillon n1 = new Maillon(3,null);
Maillon n2 = new Maillon(2, n1);
Maillon n3 = new Maillon(1, n2);
Maillon n4 = new Maillon(1,n3);
Liste l = new Liste(n4);
...
}
Jarod_Delaware