cs_Javou
Messages postés2Date d'inscriptiondimanche 5 avril 2009StatutMembreDernière intervention 5 avril 2009
-
5 avril 2009 à 20:18
cs_Javou
Messages postés2Date d'inscriptiondimanche 5 avril 2009StatutMembreDernière intervention 5 avril 2009
-
5 avril 2009 à 20:20
Bonjour à tous,
Je vous explique mon problème : J'ai crée un graphe d'élement (Graph de CElement), je récupère des elements de ce graph et je veux les mettre dans une liste chainée. cependant j'aimerais qu'il soit triés suivant un paramètre (le "Cout") mais meme si je penses avoir réussi à determiner le point d'insertion je n'arrive pas a inserer l'élement.
Voici le code que j'ai taper :
Iterator it; //iterator qui parcours la liste des successeur
it = Graph[p].iterator(); //
while (it.hasNext()) { //tant que tout les successeur de p n'ont pas été traité
CElement succ = (CElement) it.next(); //succ pointe le premier element de la liste
if (marquage[succ.getNumStation()] == false) { //si succ n'est pas marque alors,
CoutTOTAL = (courant.getCout() + succ.getCout()); //cout total est c
x = new CLO(succ.getNumStation(), CoutTOTAL, succ.getMoyen(), succ.getLigne(), succ.getDir(), courant);
//Recherche du point d'insertion
int n = 0;
Iterator itc;
itc = Chemin.iterator();
CLO pprec;
CLO pparc = (CLO) Chemin.getFirst(); // ICI, probleme qui m'empeche de tester l'ajout
pprec = pparc;
if (Chemin.isEmpty()) {
Chemin.add(x);
} //si la liste est vide on ajoute l'element au debut
else {
while (itc.hasNext()) { // tant qu'il reste un element a traiter
if (x.getCout() < pparc.getCout()) {
if (n >= 1) {
x = (CLO) Chemin.get(n - 1);
} else {
Chemin.addFirst(x);
}
}
n++;
pprec = pparc;
pparc = (CLO) Chemin.get(n);
}
je sais pas si vous y voyez grand chose ou s'il vous faut plus d'explication mais merci par avance
pour toute l'aide que vous m'apporterez.