#ifndef GRAPH_H #define GRAPH_H #include typedef struct Graph Graph; typedef struct Vertex Vertex; typedef struct Edge Edge; typedef enum { GRAPH_OK, GRAPH_BAD_ALLOC, GRAPH_VERTEX_NOT_FOUND, GRAPH_NULL_ARG, } GraphErr ; typedef enum { GRAPH_DIRECTED, GRAPH_UNDIRECTED, } GraphType; Graph *graph_create(GraphType type); GraphErr graph_destroy(Graph **graph); GraphErr graph_add_vertex(Graph *graph); GraphErr graph_connect_vertex( Graph *graph, size_t node1, size_t node2, size_t weight); GraphErr graph_vertex_count(Graph *graph, size_t *out); GraphErr graph_get_vertex(Graph *graph, size_t index, Vertex *out); #endif