int main(int argc, char *argv[]){ if(argc != 2) { printf("Usage: %s filename\n", argv[0]); return 1; } if(!file_exists(argv[1])) { printf("File %s does not exist!\n", argv[1]); return 1; } CSR_Graph *g = new CSR_Graph(argv[1]); //if(!g->check()) return 1; clock_t start = clock(); CSR_Graph *mst = boruvka(g); clock_t end = clock(); float seconds = (float)(end - start) / CLOCKS_PER_SEC; printf("%s\n", argv[1]); printf("Boruvka took %.2f seconds\n", 1000.0f*seconds); //mst->toString(); printf("Total MST weight: %lu\n", mst->getTotalWeight()); printf("nodes: %d\n", mst->nnodes); printf("edges: %d\n", mst->nedges); delete g; //mst->writeToFile(const_cast<char*>("boruvka.mst")); //mst->check(); delete mst; return 0; }
int main(void) { int node_num, edge_num; double ans; struct Graph graph; while (scanf("%d %d", &node_num, &edge_num) != EOF) { initGraph(&graph, node_num); input(&graph, edge_num); printf("Boruvka:\n"); ans = boruvka(&graph); printf("the MST weigths %2.1f\n", ans); clearChoosedEdge(&graph); printf("kruskal:\n"); ans = kruskal(&graph); printf("the MST weights %.2lf\n", ans); clearChoosedEdge(&graph); printf("prim:\n"); ans = prim(&graph); printf("the MST weights %.2lf\n", ans); deleteEdge(&graph); } return 0; }