Bonsoir,
Je cherche a coder Dijkstra en C, j'ai donc regardé l'algo sur Wikipedia et j'aurais besoin d'explications dessus.
(1) - On doit trouver la valeur min contenu dans la matrice qui represente le graphe? A quoi correspond S1?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dijkstra(G,Poids,sdeb) Initialisation(G,sdeb) P := ensemble vide Q := ensemble de tous les nuds tant que Q n'est pas un ensemble vide faire s1 := Trouve_min(Q) (1) P := P union {s1} (2) pour chaque nud s2 voisin de s1 faire maj_distances(s1,s2)
(2) - A quoi correspond union?
Comment coder infini? par -1 ca va poser des difficultées quand on va vouloir faire une addition ou autre non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Initialisation(G,sdeb) 1 pour chaque point s de G 2 faire d[s] := infini /* on initialise les sommets autres que sdeb à 0 */[3] 3 prédecesseur[s] := 0 /* car on ne connaît au départ aucun chemin entre s et sdeb */ 4 d[sdeb] := 0 /* sdeb étant le point le plus proche de sdeb */
Merci pour votre aide
Partager