libin103 1.4
Bibliothèque de structures de données en C
|
Structure de données de graphes orientés ou non, pondérés ou non, représentés par une liste d'adjacence. Plus de détails...
Aller au code source de ce fichier.
Structures de données | |
struct | integer_adjlist_elmt_ |
Type de données pour représenter un élément dans la liste des voisins d'un sommet du graphe. Plus de détails... | |
struct | integer_adjlist_ |
Type de données pour représenter la liste des voisins d'un sommet du graphe. Plus de détails... | |
struct | integer_graph_ |
Type de données pour représenter un graphe comme une liste d'adjacence. Plus de détails... | |
Définitions de type | |
typedef struct integer_adjlist_elmt_ | integer_adjlist_elmt_t |
Type de données pour représenter un élément dans la liste des voisins d'un sommet du graphe. | |
typedef struct integer_adjlist_ | integer_adjlist_t |
Type de données pour représenter la liste des voisins d'un sommet du graphe. | |
typedef struct integer_graph_ | integer_graph_t |
Type de données pour représenter un graphe comme une liste d'adjacence. | |
typedef enum integer_vertexcolor_ | integer_vertexcolor_t |
Type de données pour annoter les sommets lors d'un parcours de graphe. | |
Énumérations | |
enum | integer_vertexcolor_ { integer_white , integer_gray , integer_black } |
Type de données pour annoter les sommets lors d'un parcours de graphe. Plus de détails... | |
Fonctions | |
void | integer_graph_init (integer_graph_t *graph) |
Initialisation d'un nouveau graphe. | |
void | integer_graph_destroy (integer_graph_t *graph) |
Destruction d'un graphe. | |
int | integer_graph_ins_vertex (integer_graph_t *graph, int vertex) |
Insertion d'un nouveau sommet dans un graphe. | |
int | integer_graph_ins_edge (integer_graph_t *graph, int vertex1, int vertex2, double weight) |
Insertion d'un nouvel arc dans un graphe. | |
int | integer_graph_rem_vertex (integer_graph_t *graph, int vertex) |
Suppression d'un sommet dans un graphe. | |
int | integer_graph_rem_edge (integer_graph_t *graph, int vertex1, int vertex2) |
Suppression d'un arc dans un graphe. | |
integer_list_t * | integer_graph_adjlist (integer_graph_t *graph, int vertex) |
Accesseur de la liste des voisins d'un sommet. | |
bool | integer_graph_is_adjacent (const integer_graph_t *graph, int vertex1, int vertex2) |
Prédicat indiquant si deux sommets sont liés par un arc. | |
int | integer_graph_vcount (integer_graph_t *graph) |
Accesseur du nombre de sommets du graphe. | |
int | integer_graph_ecount (integer_graph_t *graph) |
Accesseur du nombre d'arcs du graphe. | |
Structure de données de graphes orientés ou non, pondérés ou non, représentés par une liste d'adjacence.
Une liste d'adjacence est représentée par une liste simplement chainée (générique) dont les éléments sont des ensembles (génériques) contenant des valeurs et un poids (pondération de l'arc).
typedef struct integer_adjlist_elmt_ integer_adjlist_elmt_t |
Type de données pour représenter un élément dans la liste des voisins d'un sommet du graphe.
typedef struct integer_adjlist_ integer_adjlist_t |
Type de données pour représenter la liste des voisins d'un sommet du graphe.
typedef struct integer_graph_ integer_graph_t |
Type de données pour représenter un graphe comme une liste d'adjacence.
typedef enum integer_vertexcolor_ integer_vertexcolor_t |
Type de données pour annoter les sommets lors d'un parcours de graphe.
enum integer_vertexcolor_ |
integer_list_t * integer_graph_adjlist | ( | integer_graph_t * | graph, |
int | vertex ) |
Accesseur de la liste des voisins d'un sommet.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
vertex | nom du sommet pour lequel la liste des voisins est voulue |
void integer_graph_destroy | ( | integer_graph_t * | graph | ) |
Destruction d'un graphe.
Parcours la liste d'adjacence (adjlists) puis parcours de l'ensemble (adjacent) pour détruire tous les éléments de la liste d'adjacence. Puis, mise à zéro du nombre de sommets, du nombre d'arcs et à NULL la liste d'adjacence (adjlists)
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
int integer_graph_ecount | ( | integer_graph_t * | graph | ) |
Accesseur du nombre d'arcs du graphe.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
void integer_graph_init | ( | integer_graph_t * | graph | ) |
Initialisation d'un nouveau graphe.
Met à zéro du nombre de sommets, du nombre d'arcs et initialisation de la liste d'adjacence
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
int integer_graph_ins_edge | ( | integer_graph_t * | graph, |
int | vertex1, | ||
int | vertex2, | ||
double | weight ) |
Insertion d'un nouvel arc dans un graphe.
Remarque: par défaut on considère un arc directionnel donc un graphe dirigé.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
vertex1 | nom de la source de l'arc, représenté par une valeur de type int |
vertex2 | nom de la destination de l'arc, représenté par une valeur de type int |
weight | la valeur de la pondération de l'arc (0.0 si arc non pondéré) |
int integer_graph_ins_vertex | ( | integer_graph_t * | graph, |
int | vertex ) |
Insertion d'un nouveau sommet dans un graphe.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
vertex | nom du nouveau noeud, représenté par une valeur de type int, à ajouter |
bool integer_graph_is_adjacent | ( | const integer_graph_t * | graph, |
int | vertex1, | ||
int | vertex2 ) |
Prédicat indiquant si deux sommets sont liés par un arc.
Remarque: on considère le lien directionnel entre deux sommets.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
vertex1 | nom du sommet source |
vertex2 | nom du sommet destination |
int integer_graph_rem_edge | ( | integer_graph_t * | graph, |
int | vertex1, | ||
int | vertex2 ) |
Suppression d'un arc dans un graphe.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
vertex1 | nom de la source de l'arc, représenté par une valeur de type int |
vertex2 | nom de la destination de l'arc, représenté par une valeur de type int |
int integer_graph_rem_vertex | ( | integer_graph_t * | graph, |
int | vertex ) |
Suppression d'un sommet dans un graphe.
On peut supprimer un sommet que s'il n'a plus de voisins, c'est à dire, plus d'arc entre lui et les autres sommets du graphe.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |
vertex | nom du sommet à supprimer |
int integer_graph_vcount | ( | integer_graph_t * | graph | ) |
Accesseur du nombre de sommets du graphe.
graph | est un pointeur vers la structure de données de graphe integer_graph_t |