Example #1
0
int main(void) {
	setbuf(stdout, NULL);
	int dim;

	printf("GRAFO NON ORIENTATO CON RAPPRESENTAZIONE TRAMITE LISTE DI ADIACENZA \n");

	printf("Inserisci il numero di nodi del grafo. \n");
	scanf("%d", &dim);

	printf("Creazione in corso... \n");
	collegamento * listaDiAdiacenza = creaLista(dim);

	stampaListaDiAdiacenza(listaDiAdiacenza, dim);

	printf("Inserimento dei nodi adiacenti...  \n");
	creaAdiacenti(listaDiAdiacenza, dim);

	stampaListaDiAdiacenza(listaDiAdiacenza, dim);

	printf("Verifica se regolare...  \n");
	if (verificaRegolare(listaDiAdiacenza, dim)) {
		printf("Il grafo e' regolare  \n");
	} else {
		printf("Il grafo e' irregolare \n");
	}

	printf("Calcolo del grado massimo...  \n");
	collegamento gradoMassimo = calcolaGradoMassimo(listaDiAdiacenza, dim);
	printf("Il grado massmo e' %d \n", gradoMassimo->valore);
	if (gradoMassimo->valore > 0) {
		printf("La lista dei nodi con questo grado massimo e': ");
		stampaLista(gradoMassimo->prossimo);
	}

	printf("Calcolo dei nodi isolati...  \n");
	collegamento nodiIsolati = calcolaNodiIsolati(listaDiAdiacenza, dim);
	printf("Il numero di nodi isolati e' %d \n", nodiIsolati->valore);
	if (nodiIsolati->valore > 0) {
		printf("La lista dei nodi isolati e': ");
		stampaLista(nodiIsolati->prossimo);
	}

	return EXIT_SUCCESS;
}
int main(int argc, const char * argv[]) {
    albero s = malloc(sizeof(nodoAlbero));
    s->info = 'k';
    
    s->left = malloc(sizeof(nodoAlbero));
    s->left->info = 'e';
    
    s->right = malloc(sizeof(nodoAlbero));
    s->right->info = 'm';
    
    s->left->left = malloc(sizeof(nodoAlbero));
    s->left->left->info = 'b';
    
    s->left->right = malloc(sizeof(nodoAlbero));
    s->left->right->info = 'f';
    s->left->right->left=NULL;
    s->left->right->right=NULL;
    
    s->left->left->left = malloc(sizeof(nodoAlbero));
    s->left->left->left->info = 'a';
    s->left->left->left->left = NULL;
    s->left->left->left->right = NULL;
    
    s->left->left->right = malloc(sizeof(nodoAlbero));
    s->left->left->right->info = 'c';
    s->left->left->right->left = NULL;
    s->left->left->right->right = NULL;
    
    s->right->left = malloc(sizeof(nodoAlbero));
    s->right->left->info = 'l';
    s->right->left->left = NULL;
    s->right->left->right = NULL;
    
    s->right->right = malloc(sizeof(nodoAlbero));
    s->right->right->info = 's';
    s->right->right->left = NULL;
    s->right->right->right = NULL;
    
    printf("%d\n", distanza(s, 'k', 'z'));
    lista l = allocaLista(s, 'k');
    stampaLista(l);
    free(l);
    free(s);
    return (0);
}