From 9eccc3f2f3f03ffdd9d7b985fecf7222bb956df3 Mon Sep 17 00:00:00 2001 From: Julian T Date: Thu, 21 Nov 2019 11:41:24 +0100 Subject: Added dfs impl --- sem1/algo/workshop2/dfs/graph.h | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sem1/algo/workshop2/dfs/graph.h (limited to 'sem1/algo/workshop2/dfs/graph.h') diff --git a/sem1/algo/workshop2/dfs/graph.h b/sem1/algo/workshop2/dfs/graph.h new file mode 100644 index 0000000..67ac1dc --- /dev/null +++ b/sem1/algo/workshop2/dfs/graph.h @@ -0,0 +1,42 @@ +#ifndef GRAPH_H_ +#define GRAPH_H_ + +#define COLOR_WHITE 0 +#define COLOR_GRAY 1 +#define COLOR_BLACK 2 + +struct vertex_struct; + +// Linked list +typedef struct edge_struct { + int weight; + struct vertex_struct *from; + struct vertex_struct *to; + // Linked list stuff + struct edge_struct *next; + struct edge_struct *prev; +} edge_t; + +typedef struct vertex_struct { + char ref; + int color; + + int dtime; + int ftime; + + struct vertex_struct *p; + edge_t *adj; +} vertex_t; + +typedef struct { + vertex_t *vertexes[128]; + +} graph_t; + +int graph_to_dot(FILE *f, graph_t *g); +int graph_print_adj(graph_t *g, char ref); +void graph_edge(graph_t *g, char from, char to, int weight); +edge_t *edge_next(graph_t *g, edge_t *e); +vertex_t *vertex_next(graph_t *g, vertex_t *v); + +#endif // GRAPH_H_ -- cgit v1.2.3