La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Le liste dinamiche La ricorsione

Presentazioni simili


Presentazione sul tema: "Le liste dinamiche La ricorsione"— Transcript della presentazione:

1 Le liste dinamiche La ricorsione
Esercizi Le liste dinamiche La ricorsione

2 Le liste dinamiche

3 Le liste dinamiche #include <stdio.h> #include <stdlib.h>
struct Elem { int dato; struct Elem *prox; }; typedef struct Elem ElementoLista; typedef ElementoLista *Lista; Lista inserisciInLista (Lista lista, int dato); void scriviLista (Lista lista); Lista cancellaLista (Lista lista);

4 Le liste dinamiche Lista laMiaLista = NULL; void main() {
unsigned int num, i; int d; printf ("Quanti dati? "); scanf ("%u", &num); for (i = 0; i < num; i++) printf ("Dato: "); scanf ("%d", &d); laMiaLista=inserisciInLista(laMiaLista,d); } scriviLista (laMiaLista); laMiaLista = cancellaLista (laMiaLista);

5 Le liste dinamiche Lista inserisciInLista (Lista lista, int dato) {
Lista nuovoElem; nuovoElem=(Lista)malloc(sizeof(ElementoLista)); nuovoElem->dato = dato; nuovoElem->prox = lista; return nuovoElem; }

6 Le liste dinamiche void scriviLista (Lista lista) { Lista cursore;
cursore = lista; while (cursore != NULL) printf ("%d\n", cursore->dato); cursore = cursore->prox; } printf ("Fine\n");

7 Le liste dinamiche Lista cancellaLista (Lista lista) {
Lista temp, cursore; cursore = lista; while (cursore != NULL) temp = cursore->prox; free (cursore); cursore = temp; } return cursore;

8 Fattoriale L’utente inserisce alcuni numeri naturali e l’elaboratore ne calcola il fattoriale Ricordiamo che i fattoriale è definito come: n! = sse n = 0 n! = n·(n – 1)! sse n > 0 Usiamo la definizione Algoritmo ricorsivo

9 Fattoriale #include <stdio.h> long int fatt (unsigned int n);
void main() { unsigned int n, j, max; printf ("Quanti numeri?: "); scanf ("%u", &max); for (j = 1; j <= max; j++) { printf ("Introduci numero naturale: "); scanf ("%u", &n); printf ("Fattoriale: %lu\n", fatt (n)); }

10 Fattoriale long int fatt (unsigned int n) { long int tot; if (n == 0)
} else tot = n * fatt (n – 1); return tot;

11 Fattoriale n=0 tot=1 n=1 tot=n*1 n=2 tot=n*1 3 n=3 tot=n*2 6


Scaricare ppt "Le liste dinamiche La ricorsione"

Presentazioni simili


Annunci Google