commant je peux vérifier s'il est possible d'etablir un chemain entre la vile origine et la ville destination
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 #ifndef _GRAPHE__H #define _GRAPHE__H #include "CodesErreur.h" typedef enum {Pret, Attente, Visite} EtatNd; /*Pret: ville non encore visitée. Attente: ville a été enfilée. Visite: ville a été visitée*/ typedef struct TNoeud Ville; /*Pour representer un noeud dans un graphe*/ typedef struct TArete Ligne; /*Pour representer une arete d'un graphe*/ typedef Ville VilleOrig; typedef Ville VilleDest; struct TArete /*Pour representer une arete d'un graphe*/ { VilleOrig *ptrVilleOrig; /*Un pointeur sur la ville d'origine*/ VilleDest *ptrVilleDest; /*Un pointeur sur la ville de destination*/ double tempsVol; /*Le temps du vol (en heures) entre les deux villes reliées par l'arete*/ struct TArete *suivDest; /*La prochaine adjacence du noeud (sur une rangée)*/ struct TArete *suivOrig; /*La prochaine adjacence du noeud (sur une colonne)*/ }; struct TNoeud /*Pour representer un noeud dans un graphe*/ { int numero; /*Le nom de la ville representee par le noeud*/ Ligne *listeAretes; /*La liste des aretes entre le noeud et les noeuds qui lui sont adjacents*/ EtatNd etat; /*L'état du noeud (pour la recherche par contagion)*/ struct TNoeud *precedent; /*Le noeud précédent de la liste*/ struct TNoeud *suivant; /*Le prochain noeud de la liste*/ }; typedef struct /*Pour representer un graphe, ainsi que toutes les infos necessaires*/ { int nbNoeuds; /*Le nombre de noeuds qui constituent le graphe*/ VilleOrig *vOrig; /*Pointeur sur les noeuds du graphe (noeuds d'origine)*/ VilleDest *vDest; /*Pointeur sur les noeuds du graphe (noeuds de destination)*/ } Graphe; #endif
le protot de la fonction
est ce que je peux le faire avec l'algorithme de warshall ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Bool chemainExiste(Graphe gr,int originen,int destination ,int *err) { }
Partager