int main(void) { /* read graph from stdin */ graph_t graph = graph_from_file(stdin); assert(graph != NULL); /* run kruskal */ graph_t mst = kruskal(graph); /* dump graph */ graph_dump(mst, stdout); /* dump total weight */ printf("\n# MST : %u\n", mst_total_weight(mst)); /* destroy both graphs */ graph = graph_destroy(graph); mst = graph_destroy(mst); }
int main(int argc, char *argv[]) { struct graph *g = graph_new(); if (g) { graph_join(g, 12, 34); graph_join(g, 34, 12); graph_join(g, 11, 9); graph_join(g, 9, 100); graph_join(g, 25, 89); graph_join(g, 100, 100); graph_dump(g); graph_destroy(g); } return 0; }
int main(){ setup(); for(int i=0; i<10; i++){ graph_add_vertex(gp, v[i]); } graph_add_edge(gp, v[0], v[1]); graph_add_edge(gp, v[0], v[2]); graph_add_edge(gp, v[0], v[3]); graph_add_edge(gp, v[0], v[4]); graph_add_edge(gp, v[1], v[5]); graph_add_edge(gp, v[1], v[8]); graph_add_edge(gp, v[1], v[2]); graph_add_edge(gp, v[2], v[5]); graph_add_edge(gp, v[2], v[7]); graph_add_edge(gp, v[3], v[1]); graph_add_edge(gp, v[3], v[6]); graph_add_edge(gp, v[3], v[7]); graph_add_edge(gp, v[4], v[5]); graph_add_edge(gp, v[5], v[6]); graph_add_edge(gp, v[6], v[7]); graph_add_edge(gp, v[7], v[8]); graph_add_edge(gp, v[8], v[9]); graph_add_edge(gp, v[9], v[0]); graph_dump(gp, print); List lst; list_init(&lst, NULL, NULL); bfs(gp, v[0], &lst); list_dump(&lst, print_list); enddown(); return 0; }
int main(void) { /* read graph from stdin */ graph_t graph = graph_from_file(stdin); assert(graph != NULL); /* run kruskal */ graph_t mst = kruskal(graph); /* dump graph */ graph_dump(mst, stdout); /* dump total weight */ printf("\n# MST : %u\n", mst_total_weight(mst)); /* dump whether has a cycle */ if (graph_has_cycle(mst)) { printf("# Has a cycle: YES\n"); } else { printf("# Has a cycle: NO\n"); } /* dump total connected components */ printf("# Connected components: %u\n", graph_connected_components(mst)); /* destroy both graphs */ graph = graph_destroy(graph); mst = graph_destroy(mst); }
int main(){ setup(); for(int i=0; i<10; i++){ graph_add_vertex(gp, u[i]); } graph_add_edge(gp, u[0], u[1]); graph_add_edge(gp, u[0], u[2]); graph_add_edge(gp, u[0], u[3]); graph_add_edge(gp, u[0], u[4]); graph_add_edge(gp, u[1], u[5]); graph_add_edge(gp, u[1], u[8]); graph_add_edge(gp, u[1], u[2]); graph_add_edge(gp, u[2], u[5]); graph_add_edge(gp, u[2], u[7]); graph_add_edge(gp, u[3], u[1]); graph_add_edge(gp, u[3], u[6]); graph_add_edge(gp, u[3], u[7]); graph_add_edge(gp, u[4], u[5]); graph_add_edge(gp, u[5], u[6]); graph_add_edge(gp, u[6], u[7]); graph_add_edge(gp, u[7], u[8]); graph_add_edge(gp, u[8], u[9]); graph_add_edge(gp, u[9], u[0]); graph_dump(gp, print); puts("Drop 0-item"); graph_drop_vertex(gp, u[0]); graph_dump(gp, print); puts(""); puts("Remove 9-item(will failure, because 8-item adjacent to 9-item)"); graph_remove_vertex(gp, u[9]); graph_dump(gp, print); puts(""); puts("Remove edge from 8-item to 9-item"); graph_remove_edge(gp, u[8], u[9]); graph_dump(gp, print); puts(""); puts("Remove 9-item(will success)"); graph_remove_vertex(gp, u[9]); graph_dump(gp, print); puts(""); puts("Remove edge from 1-item to 5-item"); graph_remove_edge(gp, u[1], u[5]); graph_dump(gp, print); puts(""); puts("Add edge from 1-item to 5-item"); graph_add_edge(gp, u[1], u[5]); graph_dump(gp, print); puts(""); graph_dump(gp, print); enddown(); return 0; }