int main(){ graphADT graph = GraphCreate() ; GraphAddVertex(graph, 'A') ; GraphAddVertex(graph, 'B') ; GraphAddVertex(graph, 'C') ; GraphAddVertex(graph, 'D') ; GraphAddVertex(graph, 'E') ; GraphAddEdge( getVertex(graph, 'A'), getVertex(graph, 'C') ) ; GraphAddEdge( getVertex(graph, 'C'), getVertex(graph, 'D') ) ; GraphAddEdge( getVertex(graph, 'D'), getVertex(graph, 'E') ) ; GraphAddEdge( getVertex(graph, 'B'), getVertex(graph, 'E') ) ; printf("\n Is vertex E reachable from A? : %s \n ", isDestReachable(graph, 'A', 'E')==true?"True":"False" ) ; printf("\n Is vertex E reachable from B? : %s\n ", isDestReachable(graph, 'B', 'E')==true?"True":"False" ) ; printf("\n Is vertex D reachable from A? : %s \n ", isDestReachable(graph, 'A', 'D')==true?"True":"False" ) ; printf("\n Is vertex E reachable from D? : %s \n ", isDestReachable(graph, 'D', 'E')==true?"True":"False" ) ; printf("\n Is vertex B reachable from A? : %s \n ", isDestReachable(graph, 'A', 'B')==true?"True":"False" ) ; printf("\n Is vertex D reachable from C? : %s \n ", isDestReachable(graph, 'C', 'D')==true?"True":"False" ) ; return 0; }
graphT ReadFileAndBuildGraph(const char *inputFile) { FILE *ifp = fopen(inputFile, "r"); int n, m; fscanf(ifp, "%d", &n); fscanf(ifp, "%d", &m); graphT g = GraphInit(n); for (int i = 0; i < m; ++i) { int u, v; fscanf(ifp, "%d %d", &u, &v); // Input graphs are indexed from 1 to n and we represent graphs from // 0 to n-1 --u; --v; GraphAddEdge(g, u, v); } fclose(ifp); return g; }
int main(){ struct vertex* head = NULL; GraphAddVertex(&head,6); GraphAddVertex(&head,5); GraphAddVertex(&head,4); GraphAddVertex(&head,3); GraphAddVertex(&head,2); GraphAddVertex(&head,1); printVertex(head); GraphAddEdge(head,1,2,1); struct edge* ed = head->edges; printf("%d\n",ed==NULL); printEdge(head); return 0; }