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 |
Partager