#define DEFINE_LIST(name, type)
void remove_redge(rawgraph *, size_t v1, size_t v2)
removes any edge between v1 to v2 – irrespective of direction
void free_graph(rawgraph *)
rawgraph * make_graph(size_t n)
makes a graph with n vertices, 0 edges
void insert_edge(rawgraph *, size_t v1, size_t v2)
inserts edge FROM v1 to v2
bool edge_exists(rawgraph *, size_t v1, size_t v2)
tests if there is an edge FROM v1 TO v2
void top_sort(rawgraph *)
adj_list_t adj_list
adjacency list