Cet examen porte sur la représentation de graphes orientés en C.
Un graphe orienté est constitué d'un ensemble
de sommets
et d'un ensemble
d'arêtes (c'est à dire de couples de sommets). On
peut donc considérer qu'un sommet est connecté à un ensemble d'autres
sommets (voir figure 1).
Sur le graphe de la figure 1, les voisins du sommet
étiqueté par sont donc lui-même, le sommet étiqueté par
et le
sommet étiqueté par
.
Les types utilisés dans cette épreuve seront les suivants:
typedef struct s_sommet_maillon *p_sommet_maillon_t; typedef p_sommet_maillon_t sommet_liste_t; typedef sommet_liste_t *p_sommet_liste_t; typedef struct s_sommet *sommet_t; typedef struct s_sommet_maillon { sommet_t noeud; sommet_liste_t suivant; } sommet_maillon_t; typedef struct s_sommet { int etiquette; sommet_liste_t voisins; } s_sommet_t;
Un sommet est donc composé d'une étiquette de type int et d'une liste de sommets qui sont ses voisins.