Strumenti Utente

Strumenti Sito


fisica:informatica:201415:esercitazioni:esercitazione12

Questa è una vecchia versione del documento!


Esercitazione alberi

Esercizio 1

Definire il tipo albero_s_t di un albero binario in cui le etichette sono stringhe di al piu' 20 caratteri. Scrivere una funzione

int conta_occorrenze ( albero_s_t * root, char * s );

che conta le occorrenze della stringa s nell'albero di radice root e restituisce tale numero.

Esercizio 2

Definire il tipo albero_d_t di un albero binario in cui le etichette sono valori di tipo double. Scrivere una funzione

double somma_le_foglie ( albero_d_t * root);

che restituisce la somma dei valori delle etichette delle sole foglie dell'albero.

Esercizio 3

Utilizzando il tipo albero_d_t dell'esercizio precedente. Scrivere una funzione

albero_d_t * leggi_albero ( void );

che legge da standard input una sequenza di valori double terminata da EOF e restituisce il puntatore ad un nuovo albero ce contiene tutti i valori letti. L'albero deve essere costruito in modo da essere ordinato, cioe' dato un nodo n tutti i valori nel sottoalbero sinistro devono essere minori o uguali del valore in n, mentre i valori nel sottoalbero destro devono essere tutti maggiori o uguali di n.

Verificare che stampando i valori delle etichette con una visita simmetrica otteniamo una sequenza crescente.

Esercizio 4

Utilizzando il tipo albero_d_t dell'esercizio precedente, scrivere una funzione che trasforma l'albero in una lista di double inserendo le etichette nell'ordine della visita anticipata

lista_d_t * tree_to_list ( albero_d_t * root );
fisica/informatica/201415/esercitazioni/esercitazione12.1428420920.txt.gz · Ultima modifica: 07/04/2015 alle 15:35 (10 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki