diff options
Diffstat (limited to 'sem1/algo/mm12/graph.h')
-rw-r--r-- | sem1/algo/mm12/graph.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sem1/algo/mm12/graph.h b/sem1/algo/mm12/graph.h new file mode 100644 index 0000000..e957c4d --- /dev/null +++ b/sem1/algo/mm12/graph.h @@ -0,0 +1,34 @@ +#ifndef GRAPH_H_ +#define GRAPH_H_ + +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 dist; + 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_ |