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) { graph *g; struct arguments args; argp_parse (&argp, argc, argv, 0, 0, &args); /* parse command line */ logfile = fopen(args.logfile,"w"); if (logfile==NULL) { perror("could not open log file for writing"); exit(-4); } fprintf(logfile, "file to read: %s\n", args.filename); fprintf(logfile, "number of eigenpairs to be computed: %u\n", args.nev); g = graph_from_file(args.filename); if (g == NULL) { fprintf(stderr, "could not build network from file %s\n", args.filename); exit(-2); } /* check if the graph is connected */ if (!connected_graph(g)) { fprintf(stderr, "The network is not connected: exiting\n"); exit(-5); } /* check nev */ if (args.nev<3 || args.nev>=g->n) { fprintf(stderr, "number of eigenpairs out of range:\n"); fprintf(stderr, "it must be larger than 2 and smaller than the number of nodes\n"); exit(-1); } find_comm(g,args.nev,args.flag); freegraph(g); fclose(logfile); exit(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(int argc, char* argv[]) { if (argc == 5) { double prob = atof(argv[2]); int size = atoi(argv[1]); long int seed = atol(argv[3]); srand(seed); graph* g = create_graph(size, prob); print_graph(g); } else if (argc == 4) { char filename[50]; sprintf(filename, "%s.gra", argv[2]); graph* g = graph_from_file(filename, atoi(argv[3])); sprintf(filename, "%s.dot", argv[2]); graph_to_dot(g, filename); } else if (argc == 3) { double prob = atof(argv[2]); int size = atoi(argv[1]); srand(time(NULL)); graph* g = create_graph(size, prob); print_graph(g); } else if (argc == 2) { printf("%lu", time(NULL)); } else { puts("usage: \t print <graphname> <size> prints dot version"); puts("\t <size> <prob> makes new graph"); } return 0; }