int cmd_commit_graph(int argc, const char **argv, const char *prefix) { static struct option builtin_commit_graph_options[] = { OPT_STRING(0, "object-dir", &opts.obj_dir, N_("dir"), N_("The object directory to store the graph")), OPT_END(), }; if (argc == 2 && !strcmp(argv[1], "-h")) usage_with_options(builtin_commit_graph_usage, builtin_commit_graph_options); git_config(git_default_config, NULL); argc = parse_options(argc, argv, prefix, builtin_commit_graph_options, builtin_commit_graph_usage, PARSE_OPT_STOP_AT_NON_OPTION); if (argc > 0) { if (!strcmp(argv[0], "read")) return graph_read(argc, argv); if (!strcmp(argv[0], "verify")) return graph_verify(argc, argv); if (!strcmp(argv[0], "write")) return graph_write(argc, argv); } usage_with_options(builtin_commit_graph_usage, builtin_commit_graph_options); }
std::pair<parti_ptr, parti_indx_ptr> partition() { std::pair<parti_ptr, parti_indx_ptr> ret(parti_ptr(new std::vector<long>()), parti_indx_ptr(new boost::unordered_multimap<long, long>())); graph_read("input/traffic/test/ring/partition/trafficgraph.part.4", ret.first, ret.second); return ret; };
graph_t *graph_load(char *path) { FILE *f; if ((f = fopen(path, "rb")) == NULL) { return NULL; } graph_t *graph = graph_read(f); fclose(f); return graph; }
int main() { int n, m, c, k; graph_t* g=NULL; int* color_freq=NULL; skipws(stdin); while (!feof(stdin)) { graph_read(&g, &color_freq, &n, &m, &k, &c); /* Print out what we just read in. */ fprintf(stdout, "parameters: n = %d, m = %d, c = %d, k = %d\n", n, m, c, k); graph_print(g, color_freq, c); /* Release memory & consider next graph. */ FREE(color_freq); graph_free(g); skipws(stdin); } return EXIT_SUCCESS; }
/******************************************************************** MAIN ********************************************************************/ int main (int argc, char** argv) { char cname[MAX_NAME]; char input_line[MAX_LEN]; int v,w; char* fname; Graph graph = NULL; EdgeWeight ew; TS computers = NULL; int nComputers = 0; int end = 0; FILE *fin = NULL; FILE *fout = NULL; printf("Laboratorio 12 - Esercizio 1\n\n"); if (argc != 3){ printf("Errore sul numero di argomenti passati al programma\n"); printf("Usage:\n%s input_file n_nodi_max\n",argv[0]); exit(FAILURE); } fname = strdup (argv[1]); nComputers = atoi(argv[2]); /*/ fname = strdup (INPUT_FILE); nComputers = MAX_NODES; */ fin = fopen(fname, "r"); if (fin == NULL) { printf("Errore di apertura file %s\n", fname); exit(FAILURE); } computers = TScrea(nComputers); if (computers == NULL) return FAILURE; graph = graph_read(fin, computers, nComputers); if (graph == NULL) return FAILURE; fclose(fin); while (!end) { printf("Operazioni disponibili:\n"); printf("0 -> Uscita\n"); printf("1 -> Verifica di connettivita'\n"); printf("2 -> Connectivity enforcement\n"); printf("3 -> Rimozione di un computer\n"); printf("4 -> Inserzione di una connessione\n"); printf("5 -> Rimozione di una connessione\n"); printf("6 -> Identificazione connessioni critiche\n"); printf("7 -> Visualizzazione della rete\n"); printf("8 -> Stampa su file della rete\n"); printf("Inserire numero operazione: "); scanf("%s", input_line); switch (input_line[0]) { case '1': if( GRAPHconnCheck(graph) == 1) //verifica connettivita { printf("\nVerifica della connettivita' superata\n\n"); } else { printf("\nVerificata della connettivita' FALLITA\n\n"); } break; case '2': if( GRAPHconnCheck(graph) == 1 ) //conn. enforcement { printf("\nErrore, il grafo e' gia' connesso\n\n"); break; } graph_conn_enforce(graph, computers); break; case '3': printf("\nNome del computer da rimuovere: "); //rimozione computer scanf("%s",cname); v = TScerca(computers,cname); if (v < 0) { printf("Nodo non trovato\n\n"); break; } GRAPHremoveV(graph,v); break; case '4': printf("\nNome del primo estremo della connessione da inserire: "); //inserzione connessione scanf("%s",cname); v = TScercaOAggiungi(computers,cname); if (v < 0) { printf("Impossibile inserire il nuovo nodo\n\n"); break; } printf("Nome del seconde estremo della connessione da inserire: "); scanf("%s",cname); w = TScercaOAggiungi(computers,cname); if (w < 0) { printf("Impossibile inserire il nuovo nodo\n\n"); break; } printf("Velocita' della connessione: "); scanf("%d", &ew.speed); if (ew.speed < 0) { printf("Errore, velocita' minore di 0\n\n"); break; } GRAPHinsertE(graph,v,w,ew); break; case '5': printf("\nNome del primo estremo della connessione da rimuovere: "); //rimozione connessione scanf("%s",cname); v = TScerca(computers,cname); if (v < 0) { printf("Nodo non trovato\n\n"); break; } printf("Nome del secondo estremo della connessione da rimuovere: "); scanf("%s",cname); w = TScerca(computers,cname); if (w < 0) { printf("Nodo non trovato\n\n"); break; } GRAPHremoveE(graph,v,w); break; case '6': if( GRAPHconnCheck(graph) != 1 ) //connessioni critiche { printf("\nErrore, il grafo non e' connesso\n\n"); break; } graph_critic_conn(graph,computers); break; case '7': GRAPHshow(graph, computers); //visualizzazione rete break; case '8': printf("\nNome del file in output: "); //stampa rete su file scanf("%s",cname); fout=fopen(cname,"w"); if (fout == NULL) { printf("Errore di apertura file %s\n\n", fname); exit(FAILURE); } GRAPHprint(graph, computers, fout); fclose(fout); break; case '0': printf("\nProgramma terminato\n"); end = 1; break; default: printf("Operazione sconosciuta\n\n"); } } GRAPHfree(graph); TSlibera(computers); return SUCCESS; }