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); }
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; }