Exemplo n.º 1
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));
    /* destroy both graphs */
    graph = graph_destroy(graph);
    mst = graph_destroy(mst);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
Arquivo: main.c Projeto: Tinix/kruskal
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);
}
Exemplo n.º 4
0
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;
}