2° Homework del corso di Programmazione 2, canale A-D
Data ultima di consegna: 13/4/05, ore 23:59
Testi:
- Si definisca una funzione ricorsiva C che restituisce 1 se il primo dei due alberi in input e' un sottoalbero del secondo, 0 altrimenti. La funzione ha il seguente prototipo: int subTree(treePtr T, treePtr U). (Suggerimento: si usi una funzione d'appoggio per testare l'uguaglianza di alberi).
- Si definisca una funzione C che restituisce 1 se l'albero in input è completo, 0 altrimenti. Un albero binario è completo se ogni nodo ha 0 o 2 figli e tutte le foglie sono al piu’ su due livelli successivi, con quelle sul livello massimo tutte a sinistra. In altre parole un albero binario e’ completo se per ogni nodo i suoi sottoalberi sinistro e destro hanno la stessa altezza, il sinistro e’ pieno e il destro completo oppure il sottoalbero di sinistra, completo, e’ di 1 piu’ alto di quello di destra, che deve essere pieno. La funzione ha il seguente prototipo: int completo(treePtr tPtr)
Un criterio importante per la valutazione è la leggibilità del codice; in particolare, verranno valutati positivamente i seguenti aspetti:
- inserimento di commenti necessari alla comprensione del programma (per esempio, commenti sull'utilizzo di variabili locali, di cicli, di funzioni di appoggio, ...)
- utilizzo di nomi mnemonici per le variabili e le funzioni
- opportuna indentazione
E' bene consegnare un file completo di tutto il necessario per la compilazione, tra cui le definizioni delle strutture usate, l'inclusione dei files header necessari e di una funzione 'main' (anche banale, tipo 'return 0').
Gli esercizi si sottomettono andando alla pagina
http://twiki.dsi.uniroma1.it/~prog2-ad/consegna-Prog2.html
--
DanieleGorla - 04 Apr 2005