Problème insertion dans une liste chainée

cs_Javou
Messages postés
2
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
5 avril 2009
- 5 avril 2009 à 20:18
cs_Javou
Messages postés
2
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Derniè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.

1 réponse

cs_Javou
Messages postés
2
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
5 avril 2009

5 avril 2009 à 20:20
PS : Comment mettre le code dans une petite fenetre s'il vous plait ? 
        C'est pas tres clair comme ça
0