// graph.h #ifndef GRAPH_H #define GRAPH_H struct graph { int size; unsigned int** matrix; char** labels; }; // initialize a graph of a given number of cities void init_graph(struct graph*, int size); // add a label to the graph void set_label(struct graph* graph, int node, char* label); // get the value of a node const char* get_label(struct graph* graph, int index); // lookup a node number by the label int lookup(struct graph* graph, const char* label); // insert an edge between two nodes in the graph void insert_edge(struct graph* graph, int from, int to, int cost); // return the cost of an edge in the graph unsigned int get_cost(struct graph* graph, int from, int to); #endif