示例#1
0
long long fibonacciCola(int n) {
    Cola cola;
    if (n == 0) return 0;
    if (n == 1) return 1;
    creaLista(&cola);
    formar(&cola, 0);
    formar(&cola, 1);
    int i;
    for (i = 2; i <= n; i++) {
        // Quitamos el elemento menos reciente
        long long fi1 = atender(&cola);
        // Obtenemos el valor del siguiente más reciente
        long long fi2 = valorPrincipio(&cola);
        // Almacenamos el resultado en la cola
        formar(&cola, fi1 + fi2);
    }
    return valorFinal(&cola);
}
示例#2
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;
}