Bonjour,
j'ai un projet qui consiste a programmer l'algorithme de Prim sur Java , les deux classes que j'ai créer sont Prim et WeightGraphe , la première est dont il ya tout le code de l'algorithme et la deuxième représente la taille du graphe ! le problème que j'ai maintenant c'est quand j'execute ca ne m'affiche aucune erreur ni résultat tout reste blanc sans rien avoir sur la console je ne sais pas comment dégager l'erreur que j'ai dans mon programme !! voici les deux classes :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Prim {
 
      // L'algorithme de Prim-Jarnik de trouver MST racine s
      public static int [] prim (WeightedGraph G, int s) {
         final int [] dist = new int [G.size()];  // la plus courte distance connue à MST
         final int [] pred = new int [G.size()];  // précédant nœud dans l'arbre
         final boolean [] visited = new boolean [G.size()]; // tout faux départ
 
         for (int i=0; i<dist.length; i++) {
           dist[i] = Integer.MAX_VALUE;
        }
        dist[s] = 0;
 
        for (int i=0; i<dist.length; i++) {
           final int next = minVertex (dist, visited);
           visited[next] = true;
 
           // Le bord de pred [suite] à côté est en MST (if next!=s)
 
           final int [] n = G.neighbors (next);
           for (int j=0; j<n.length; j++) {
              final int v = n[j];
              final int d = G.getWeight(next,v);
              if (dist[v] > d) {
                 dist[v] = d;
                 pred[v] = next;
              }
           }
        }
        return pred;  // (ignorer pred [s] == 0!)
     }
 
     private static int minVertex (int [] dist, boolean [] v) {
        int x = Integer.MAX_VALUE;
        int y = -1;   // graphe n'est pas connecté ou les sommets ne sont pas visités
        for (int i=0; i<dist.length; i++) {
           if (!v[i] && dist[i]<x) {y=i; x=dist[i];}
       }
        return y;
     }
 
	public static void main(String[] args) {
 
	}
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
 
public interface WeightedGraph {
 
	int size();
 
	int[] neighbors(int next);
 
	int getWeight(int next, int v);
 
}
Merci de m'aider si c'est possible