X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1f9103a9499fba3c92b5dd09e2728ea06c37a884..60ef872d5e96a7fa7b8ab43162d73517197e1c3c:/src/xbt/graph_private.h diff --git a/src/xbt/graph_private.h b/src/xbt/graph_private.h index 922f164a61..4f6645aed2 100644 --- a/src/xbt/graph_private.h +++ b/src/xbt/graph_private.h @@ -10,32 +10,46 @@ #define _XBT_GRAPH_PRIVATE_H #include "xbt/dynar.h" +#define NOT_EXPLORED 0 +#define CURRENTLY_EXPLORING 1 +#define ALREADY_EXPLORED 2 + /* Node structure */ /* typedef struct xbt_node *xbt_node_t; */ -typedef struct xbt_node -{ +typedef struct xbt_node { xbt_dynar_t out; - xbt_dynar_t in; - void *data; + xbt_dynar_t in; /* not used when the graph is directed */ + double position_x; /* positive value: negative means undefined */ + double position_y; /* positive value: negative means undefined */ + void *data; /* user data */ + void *xbtdata; /* private xbt data: should be reinitialized at the + beginning of your algorithm if you need to use it */ } s_xbt_node_t; /* edge structure */ /* typedef struct xbt_edge *xbt_edge_t; */ -typedef struct xbt_edge -{ +typedef struct xbt_edge { xbt_node_t src; xbt_node_t dst; - void *data; + void *data; /* user data */ + void *xbtdata; /* private xbt data: should be reinitialized at the + beginning of your algorithm if you need to use it */ + double length; /* positive value: negative means undefined */ } s_xbt_edge_t; /* Graph structure */ /* typedef struct xbt_graph *xbt_graph_t; */ -typedef struct xbt_graph -{ +typedef struct xbt_graph { xbt_dynar_t nodes; xbt_dynar_t edges; unsigned short int directed; - void *data; + void *data; /* user data */ + void *xbtdata; /* private xbt data: should be reinitialized at the + beginning of your algorithm if you need to use it */ } s_xbt_graph_t; +void xbt_floyd_algorithm(xbt_graph_t g, double *adj, double *d, + xbt_node_t * p); +void xbt_graph_depth_visit(xbt_graph_t g, xbt_node_t n, xbt_node_t * sorted, + int *idx); -#endif /* _XBT_GRAPH_PRIVATE_H */ +#endif /* _XBT_GRAPH_PRIVATE_H */