typedef struct GraphRep {
int **edges; // adjacency matrix storing positive weights
// 0 if nodes not adjacent
int nV; // #vertices
int nE; // #edges
} GraphRep;
void insertEdge(Graph g, Edge e) {
assert(g != NULL && validV(g,e.v) && validV(g,e.w));
if (g->edges[e.v][e.w] == 0) { // edge e not in graph
g->edges[e.v][e.w] = e.weight;
g->nE++;
}
}
int adjacent(Graph g, Vertex v, Vertex w) {
assert(g != NULL && validV(g,v) && validV(g,w));
return g->edges[v][w];
}
|