|
Graphes
0.1
|
fonctions de base pour la manipulation de graphes Plus de détails...
Macros | |
| #define | TAILLEBUF 4096 |
Fonctions | |
| pcell | AlloueCell (pcell *plibre) |
| retire la premiere cellule de la liste pointée par plibre et retourne un pointeur sur cette cellule. Plus de détails... | |
| void | LibereCell (pcell *plibre, pcell p) |
| insère la cellule p au début de la liste pointée par 'plibre'. Plus de détails... | |
| void | RetireTete (pcell *plibre, pcell *pliste) |
| retire la première cellule de la liste 'pliste'. La cellule est chaînee à la liste 'plibre'. Plus de détails... | |
| void | AjouteTete (pcell *plibre, pcell *pliste, int a, TYP_VARC v) |
| ajoute une cellule contenant le sommet 'a' et la valeur 'v' en tête de la liste 'pliste'. La cellule est prise dans la liste 'plibre'. Plus de détails... | |
| int | EstDansListe (pcell p, int a) |
| retourne 1 si le sommet 'a' se trouve dans la liste 'p', 0 sinon. Plus de détails... | |
| graphe * | InitGraphe (int nsom, int nmaxarc) |
| alloue la memoire nécessaire pour représenter un graphe a 'nsom' sommets, possédant au maximum 'nmaxarc' arcs. Retourne un pointeur sur la structure allouée. Plus de détails... | |
| void | TermineGraphe (graphe *g) |
| libère la memoire occupée par le graphe g. Plus de détails... | |
| graphe * | ReadGraphe (char *filename) |
| Lit les données d'un graphe dans le fichier filename, retourne un pointeur sur la structure graphe construite. Plus de détails... | |
| void | AjouteArc (graphe *g, int i, int s) |
| ajoute l'arc (i,s) au graphe g (application gamma seulement). Plus de détails... | |
| void | AjouteArcValue (graphe *g, int i, int s, TYP_VARC v) |
| ajoute l'arc (i,s) au graphe g (application gamma seulement). Plus de détails... | |
| void | RetireArc (graphe *g, int i, int s) |
| retire l'arc (i,s) du graphe g (application gamma seulement), si celui-ci etait présent. Sinon, pas d'action. Plus de détails... | |
| int | PopSuccesseur (graphe *g, int i) |
| retire un arc (i,s) du graphe g (application gamma seulement), et retourne le sommet s Plus de détails... | |
| int | EstSuccesseur (graphe *g, int i, int s) |
| retourne 1 si le sommet 's' est un successeur du sommet 'i', 0 sinon. Plus de détails... | |
| graphe * | GrapheAleatoire (int nsom, int narc) |
| retourne un graphe aléatoire à 'nsom' sommets et 'narc' arcs. Le graphe est antisymétrique et sans boucle. Le nombre d'arcs doit être <= nsom (nsom - 1) / 2. Les arcs sont pondérés (valeur aléatoire entre 0.0 et 1.0). Plus de détails... | |
fonctions de base pour la manipulation de graphes
| void AjouteArc | ( | graphe * | g, |
| int | i, | ||
| int | s | ||
| ) |
ajoute l'arc (i,s) au graphe g (application gamma seulement).
| g | (entrée/sortie) : un graphe. |
| i | (entrée) : extrémité initiale de l'arc. |
| s | (entrée) : extrémité finale de l'arc. |
Références AjouteTete(), graphe::gamma, graphe::libre, et graphe::narc.
Référencé par GrapheAleatoire(), et ReadGraphe().
| void AjouteArcValue | ( | graphe * | g, |
| int | i, | ||
| int | s, | ||
| TYP_VARC | v | ||
| ) |
ajoute l'arc (i,s) au graphe g (application gamma seulement).
| g | (entrée/sortie) : un graphe. |
| i | (entrée) : extrémité initiale de l'arc. |
| s | (entrée) : extrémité finale de l'arc. |
| v | (entrée) : une valeur pour l'arc. |
Références AjouteTete(), graphe::gamma, graphe::libre, et graphe::narc.
Référencé par ReadGraphe().
ajoute une cellule contenant le sommet 'a' et la valeur 'v' en tête de la liste 'pliste'. La cellule est prise dans la liste 'plibre'.
| plibre | (entrée) : pointeur sur une liste chaînee de cellules libres. |
| pliste | (entrée) : pointeur sur une liste. |
| a | (entrée) : un sommet. |
| v | (entrée) : une valeur. |
Références AlloueCell(), cell::next, cell::som, et cell::v_arc.
Référencé par AjouteArc(), et AjouteArcValue().
retire la premiere cellule de la liste pointée par plibre et retourne un pointeur sur cette cellule.
| plibre | (entrée) : pointeur sur une liste chaînee de cellules libres. |
Références cell::next.
Référencé par AjouteTete().
| int EstDansListe | ( | pcell | p, |
| int | a | ||
| ) |
retourne 1 si le sommet 'a' se trouve dans la liste 'p', 0 sinon.
| p | (entrée) : une liste chaînee de successeurs. |
| a | (entrée) : un sommet. |
Références cell::next, et cell::som.
Référencé par EstSuccesseur().
| int EstSuccesseur | ( | graphe * | g, |
| int | i, | ||
| int | s | ||
| ) |
retourne 1 si le sommet 's' est un successeur du sommet 'i', 0 sinon.
| g | (entrée) : un graphe. |
| i | (entrée) : un sommet de g. |
| s | (entrée) : un sommet de g. |
Références EstDansListe(), et graphe::gamma.
Référencé par GrapheAleatoire().
| graphe * GrapheAleatoire | ( | int | nsom, |
| int | narc | ||
| ) |
retourne un graphe aléatoire à 'nsom' sommets et 'narc' arcs. Le graphe est antisymétrique et sans boucle. Le nombre d'arcs doit être <= nsom (nsom - 1) / 2. Les arcs sont pondérés (valeur aléatoire entre 0.0 et 1.0).
| nsom | (entrée) : nombre de sommets. |
| narc | (entrée) : nombre d'arcs. |
Références AjouteArc(), EstSuccesseur(), InitGraphe(), graphe::queue, RetireArc(), graphe::tete, et graphe::v_arcs.
| graphe * InitGraphe | ( | int | nsom, |
| int | nmaxarc | ||
| ) |
alloue la memoire nécessaire pour représenter un graphe a 'nsom' sommets, possédant au maximum 'nmaxarc' arcs. Retourne un pointeur sur la structure allouée.
| nsom | (entrée) : nombre de sommets. |
| nmaxarc | (entrée) : nombre maximum d'arcs. |
Références graphe::gamma, graphe::libre, graphe::narc, graphe::nmaxarc, graphe::nomsommet, graphe::nsom, graphe::queue, graphe::reserve, graphe::tete, graphe::v_arcs, graphe::v_sommets, graphe::x, et graphe::y.
Référencé par GrapheAleatoire(), et ReadGraphe().
insère la cellule p au début de la liste pointée par 'plibre'.
| plibre | (entrée) : pointeur sur une liste chaînee de cellules libres. |
| p | (entrée) : pointeur sur une cellule. |
Références cell::next.
Référencé par RetireTete().
| int PopSuccesseur | ( | graphe * | g, |
| int | i | ||
| ) |
retire un arc (i,s) du graphe g (application gamma seulement), et retourne le sommet s
| g | (entrée/sortie) : un graphe. |
| i | (entrée) : un sommet de g. |
Références graphe::gamma, graphe::libre, RetireTete(), et cell::som.
| graphe * ReadGraphe | ( | char * | filename | ) |
Lit les données d'un graphe dans le fichier filename, retourne un pointeur sur la structure graphe construite.
| filename | (entrée) : nom du fichier graphe. |
Références AjouteArc(), AjouteArcValue(), InitGraphe(), graphe::nomsommet, graphe::x, et graphe::y.
| void RetireArc | ( | graphe * | g, |
| int | i, | ||
| int | s | ||
| ) |
retire l'arc (i,s) du graphe g (application gamma seulement), si celui-ci etait présent. Sinon, pas d'action.
| g | (entrée/sortie) : un graphe. |
| i | (entrée) : un sommet de g. |
| s | (entrée) : un sommet de g. |
Références graphe::gamma, graphe::libre, graphe::narc, et RetireTete().
Référencé par GrapheAleatoire().
retire la première cellule de la liste 'pliste'. La cellule est chaînee à la liste 'plibre'.
| plibre | (entrée) : pointeur sur une liste chaînee de cellules libres. |
| pliste | (entrée) : pointeur sur une liste. |
Références LibereCell(), et cell::next.
Référencé par PopSuccesseur(), et RetireArc().
| void TermineGraphe | ( | graphe * | g | ) |
libère la memoire occupée par le graphe g.
| g | (entrée) : un graphe. |
Références graphe::gamma, graphe::nomsommet, graphe::nsom, graphe::queue, graphe::reserve, graphe::tete, graphe::v_arcs, et graphe::v_sommets.
1.8.6