Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAzzo Fumagalli Modificato 11 anni fa
1
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica Anno Accademico 2007/08
2
M a r c o T a r i n i - L a b o r a t o r i o d i L i n g u a g g i - 2 0 0 7 / 0 8 - U n i v e r s i t à d e l l I n s u b r i a Definizione tipi ricorsivi Definire tipi ricorsivi: typedef struct { char nome[20]; char cognome[20]; int peso; } Persona; Persona padre; Concettualmente sbagliato. Ricorsione infinita!
3
M a r c o T a r i n i - L a b o r a t o r i o d i L i n g u a g g i - 2 0 0 7 / 0 8 - U n i v e r s i t à d e l l I n s u b r i a Definizione tipi ricorsivi Definire tipi ricorsivi: typedef struct { char nome[20]; char cognome[20]; int peso; Persona* padre; } Persona; Concettualmente giusto. (l'ennesimo uso dei puntatori) Ma non compila perche' al momento della dichiarazione del campo padre il tipo Persona non esiste ancora.
4
M a r c o T a r i n i - L a b o r a t o r i o d i L i n g u a g g i - 2 0 0 7 / 0 8 - U n i v e r s i t à d e l l I n s u b r i a Definizione tipi ricorsivi Definire tipi ricorsivi: typedef struct P { char nome[20]; char cognome[20]; int peso; struct P *padre; } Persona; Persona a,b; a.padre = &b;
5
M a r c o T a r i n i - L a b o r a t o r i o d i L i n g u a g g i - 2 0 0 7 / 0 8 - U n i v e r s i t à d e l l I n s u b r i a Persona a,b; a.padre = &b; Definizione tipi ricorsivi Definire tipi ricorsivi: (modo alternativo) typedef struct Persona { char nome[20]; char cognome[20]; int peso; struct Persona *padre; }; struct Persona a,b; a.padre = &b;
6
M a r c o T a r i n i - L a b o r a t o r i o d i L i n g u a g g i - 2 0 0 7 / 0 8 - U n i v e r s i t à d e l l I n s u b r i a Liste Esempio: le liste typedef struct E { int data; struct E *next; } Elemento; typedef Elemento* pElemento; 1 5 / datanextdatanext
7
M a r c o T a r i n i - L a b o r a t o r i o d i L i n g u a g g i - 2 0 0 7 / 0 8 - U n i v e r s i t à d e l l I n s u b r i a Esempio: la lista di numeri ( 1, 5, 2 ) 5 2 / datanextdatanext 1 datanext start typedef struct E { int data; struct E *next; } Elemento; typedef Elemento* start;
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.