예제 #1
0
int main(int argc, char *argv[]) {
	char	s[] = "RandGraph.gle";
	int		V = atoi(argv[1]), E = atoi(argv[2]);
	Graph	G = GRAPHrandp(V, E);

	GRAPHplot(G, s);
	if (V < 20)
		GRAPHshow(G);
	else 
		printf("%d vertices, %d edges, ", V, E);
	return 0;
}
예제 #2
0
int main(int argc, char * argv[]){
    Graph g1 = graphScan("test1.txt");
    printf("test1.txt\n");
    GRAPHshow(g1);
    assert(eulerPath(g1) == 1);
    GRAPHdestroy(g1);

    Graph g2 = graphScan("test2.txt");
    printf("test2.txt\n");
    GRAPHshow(g2);
    assert(eulerPath(g2) == 2);
    GRAPHdestroy(g2);


    Graph g3 = graphScan("test3.txt");
    printf("test3.txt\n");
    GRAPHshow(g3);
    assert(eulerPath(g3) == 0);
    GRAPHdestroy(g3);

    return 0;
}
예제 #3
0
파일: graph.c 프로젝트: faterer/groof_off
int main(int argc, char *argv[])
{ 
	if (argv[1] == NULL || argv[2] == NULL) {
		GRAPHHelp();
		return 0;
	}

	int V = atoi(argv[1]), E = atoi(argv[2]);

	Graph G = GRAPHrand(V, E);
	if (V < 20) 
	     GRAPHshow(G);
	else printf("%d vertices, %d edges, ", V, E);
	// printf("%d component(s)\n", GRAPHcc(G));
	return 0;
}
예제 #4
0
파일: main.c 프로젝트: ChrisDeM/C_Language
/********************************************************************
  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;
}