19#ifndef GENERIC_GRAPH_H
20#define GENERIC_GRAPH_H
54 int (*
compare)(
const void *key1,
const void *key2);
59 void* (*build) (
const void *data);
111 int (*compare)(
const void *key1,
const void *key2),
112 void* (*build) (
const void *data),
113 void (*destroy)(
void *data));
struct generic_adjlist_ generic_adjlist_t
Type de données pour représenter la liste des voisins d'un sommet du graphe.
int generic_graph_ins_edge(generic_graph_t *graph, const void *data1, const void *data2)
Insertion d'un nouvel arc dans un graphe.
generic_list_t generic_graph_adjlists(generic_graph_t *graph)
Accesseur de la liste d'ajdacence d'un graphe.
int generic_graph_rem_edge(generic_graph_t *graph, void *data1, void **data2)
Suppression d'un arc dans un graphe.
int generic_graph_ins_vertex(generic_graph_t *graph, const void *data)
Insertion d'un nouveau sommet dans un graphe.
enum vertexcolor_ vertexcolor_t
Type de données pour annoter les sommets lors d'un parcours de graphe.
struct generic_graph_ generic_graph_t
Type de données pour représenter un graphe comme une liste d'adjacence.
int generic_graph_ecount(generic_graph_t *graph)
Accesseur du nombre d'arcs du graphe.
void generic_graph_init(generic_graph_t *graph, int(*compare)(const void *key1, const void *key2), void *(*build)(const void *data), void(*destroy)(void *data))
Initialisation d'un nouveau graphe.
void generic_graph_destroy(generic_graph_t *graph)
Destruction d'un graphe.
vertexcolor_
Type de données pour annoter les sommets lors d'un parcours de graphe.
Definition generic_graph.h:78
@ black
Definition generic_graph.h:81
@ gray
Definition generic_graph.h:80
@ white
Definition generic_graph.h:79
int generic_graph_vcount(generic_graph_t *graph)
Accesseur du nombre de sommets du graphe.
int generic_graph_rem_vertex(generic_graph_t *graph, void **data)
Suppression d'un sommet dans un graphe.
bool generic_graph_is_adjacent(const generic_graph_t *graph, const void *data1, const void *data2)
Prédicat indiquant si deux sommets sont liés par un arc.
int generic_graph_adjlist(const generic_graph_t *graph, const void *data, generic_adjlist_t **adjlist)
Accesseur de la liste des voisins d'un sommet.
Liste chainée contenant des valeurs de type void*
Ensemble générique contenant des valeurs de type void*
Type de données pour représenter la liste des voisins d'un sommet du graphe.
Definition generic_graph.h:37
void * vertex
Definition generic_graph.h:38
generic_set_t adjacent
Definition generic_graph.h:39
Type de données pour représenter un graphe comme une liste d'adjacence.
Definition generic_graph.h:51
int vcount
Definition generic_graph.h:52
int ecount
Definition generic_graph.h:53
void(* destroy)(void *data)
Definition generic_graph.h:62
int(* compare)(const void *key1, const void *key2)
Definition generic_graph.h:54
generic_list_t adjlists
Definition generic_graph.h:65
Type de données pour représenter une liste chainée contenant des void*
Definition generic_list.h:49