Gamma
Représentation d'un graphe par son application Gamma
Étudions, à partir de quelques exemples, la structure de
données
graphe (définie dans le fichier graphes.h). La
figure 1 montre un graphe, ainsi
qu'une représentation en mémoire de ce graphe sous forme
d'application ``successeurs'' (notée gamma ou Γ ).
On notera qu'en plus du graphe, des valeurs sont associées aux
arcs (en rouge).
Tous
les champs de la structure graphe ne sont pas encore
utilisés, seuls les champs utiles ici sont illustrés ici.
|
|
(a) |
(b) |
Figure 1:
(a): un graphe; (b): une représentation en mémoire
de ce graphe sous forme d'application Γ.
Notez qu'il est prévu de réserver pour les arcs du graphe
plus de place que nécessaire (narc), ce qui permet de
modifier un graphe en lui retirant ou en lui rajoutant des arcs (dans
la limite de nmaxarc). Dans cet exemple, il reste de la
place pour stocker deux arcs supplémentaires.
Les cellules de liste (de type cell) sont allouées en
une seule fois à l'initialisation de la structure et
stockées dans le tableau
reserve, pour éviter des appels répétés
(et coûteux) à la fonction système malloc ou new.