36 lines
922 B
C
36 lines
922 B
C
#ifndef VEC_H
|
|
|
|
#define VEC_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
typedef char fix_str[256];
|
|
typedef struct node *nodept;
|
|
typedef struct nodes graph_vec;
|
|
|
|
struct nodes {
|
|
int n; // nombre de noeuds
|
|
int cap; // capacité (pour realloc)
|
|
nodept *node; // toutes les nodes
|
|
};
|
|
|
|
struct node {
|
|
bool call; // fonction a ete appele ou pas
|
|
int vu; // status de noeud (`vu/en traitement/fini` pour dfs ou `vu/non vu` pour affichage)
|
|
int num; // le numero de noeud
|
|
int nbs; // nombre de successeurs
|
|
fix_str func; // noms de fonctions
|
|
int cap; // capacité (pour realloc)
|
|
nodept *succ; // les successeurs
|
|
};
|
|
|
|
graph_vec vnew_graph(void);
|
|
void vinsert_node(graph_vec *g, fix_str str);
|
|
void vdelete_graph(graph_vec *g);
|
|
int vis_in(graph_vec g, fix_str func);
|
|
void vdot_graph(graph_vec g, bool main);
|
|
void vprint(nodept node, graph_vec *g, int color);
|
|
void vfind_cycles(graph_vec *g);
|
|
|
|
#endif /* end of include guard: VEC_H */
|