Bonjour à tout le monde;
Je suis entrain de développer, un petit programme pour calculer le plus court chemin entre 2 sommet en utilisant djikstra; j'ai réussis à implémenter l'algorithme mais comme je n'ai pas beaucoup de connaissance en orienté objet, j'ai quelque souci avec la simplification de mon code.
J'ai une classe elementGraphequi reçoit 3 paramètres, le sommet de départ, le sommet adjacent et le coût entre les 2.
Je me retrouve avec 20 liens entre les sommets, j'ai créer un tableau de type elementGraphe qui doit contenir ces 20 liens(chemin) avec leurs sommets, mais le problème est que j'ai un code lourd et moche
Avec ce code tout fonctionne correctement mais en voulant le simplifier pour utiliser une boucle afin de réduire les lignes du code,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 elementGraphe[] tableau= { new coutChemin(getInt(CDG.getSommet().get(0)), getInt(CDG.getSommetVoisin().get(0)),getInt(CDG.getListeCout().get(0)) ), new coutChemin(getInt(CDG.getSommet().get(1)), getInt(CDG.getSommetVoisin().get(1)),getInt(CDG.getListeCout().get(1)) ), new coutChemin(getInt(CDG.getSommet().get(2)), getInt(CDG.getSommetVoisin().get(2)),getInt(CDG.getListeCout().get(2)) ), new coutChemin(getInt(CDG.getSommet().get(3)), getInt(CDG.getSommetVoisin().get(3)),getInt(CDG.getListeCout().get(3)) ), ....... ........ };
j'ai un autre problème, mon algorithme me donne aucun résultat, lorsque j'ai essaie d'afficher les valeurs du tableau , je n'obtiens que des adresse mémoires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 coutChemin[] tableau; public void Tabchemin() { for(int i=0;i<2;i++) { tableau= new coutChemin[] { new coutChemin(getInt(CDG.getSommet().get(i)), getInt(CDG.getSommetVoisin().get(i)), getInt(CDG.getListeCout().get(i)))}; }
, j'ai essayé d'utiliser plusieurs techniques comme la méthode toString(), Arrays.toString(tableau),... pour afficher les données mais en vain.
Ce sont ces valeurs qu'utilise mon algorithme pour faire les calcules, j'ai une autre classe qui gère les calculs, il reçoit le tableau de type elementGraphe en parametre.
Est ce que c'est du fait que mon tableau n'est de type int, ou integer c'est pourquoi ça ne marche pas ? Sinon comment je dois faire pour simplifier ces lignes de code? J'ai déjà fait des recherches sur google mais aucun resultats lignes de code au cas où vous avez d'autres pistes j’apprécierais votre aide, merci d'avance.
Partager