fisica:informatica:201516:secondoanno:laboratorio_12
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Prossima revisione | Revisione precedente | ||
fisica:informatica:201516:secondoanno:laboratorio_12 [18/05/2016 alle 07:59 (9 anni fa)] – creata Roberta Gori | fisica:informatica:201516:secondoanno:laboratorio_12 [18/05/2016 alle 08:08 (9 anni fa)] (versione attuale) – [Esercizio 3] Roberta Gori | ||
---|---|---|---|
Linea 5: | Linea 5: | ||
< | < | ||
albero_s_t | albero_s_t | ||
- | <\code> | + | </code> |
di un albero binario in cui le etichette sono stringhe di al piu' 20 | di un albero binario in cui le etichette sono stringhe di al piu' 20 | ||
- | caratteri. Scrivere una funzione | + | caratteri. |
+ | |||
+ | Scrivere una funzione | ||
+ | < | ||
int conta_occorrenze ( albero_s_t * root, char * s ); | int conta_occorrenze ( albero_s_t * root, char * s ); | ||
+ | </ | ||
che conta le occorrenze della stringa | che conta le occorrenze della stringa | ||
s | s | ||
Linea 14: | Linea 18: | ||
root | root | ||
e restituisce tale numero. | e restituisce tale numero. | ||
- | 2) Definire il tipo | + | |
+ | |||
+ | ===== Esercizio | ||
+ | Definire il tipo | ||
+ | < | ||
albero_d_t | albero_d_t | ||
+ | </ | ||
di un albero binario in cui le etichette sono valori di tipo | di un albero binario in cui le etichette sono valori di tipo | ||
- | double | + | double. |
- | . | + | |
Scrivere una funzione | Scrivere una funzione | ||
+ | < | ||
double somma_le_foglie ( albero_d_t * root); | double somma_le_foglie ( albero_d_t * root); | ||
+ | </ | ||
che restituisce la somma dei valori delle etichette delle sole foglie dell' | che restituisce la somma dei valori delle etichette delle sole foglie dell' | ||
- | 3)Utilizzando il tipo | + | |
+ | |||
+ | ===== Esercizio | ||
+ | Utilizzando il tipo | ||
+ | < | ||
albero_d_t | albero_d_t | ||
+ | </ | ||
| | ||
+ | < | ||
void leggi_albero ( albero_d_t ** root) ; | void leggi_albero ( albero_d_t ** root) ; | ||
+ | </ | ||
che legge da standard input una sequenza di valori double terminata da EOF e restituisce il | che legge da standard input una sequenza di valori double terminata da EOF e restituisce il | ||
puntatore ad un nuovo albero che contiene tutti i valori letti. L' | puntatore ad un nuovo albero che contiene tutti i valori letti. L' | ||
Linea 31: | Linea 49: | ||
n | n | ||
tutti i valori nel sottoalbero sinistro devono essere minori o | tutti i valori nel sottoalbero sinistro devono essere minori o | ||
- | uguali del valore | + | uguali del valore |
- | n | + | n, mentre i valori nel sottoalbero destro devono essere tutti maggiori o uguali di |
- | , mentre i valori nel sottoalbero destro devono essere tutti maggiori o uguali di | + | n. |
- | n | + | |
- | . | + | |
Verificare che stampando i valori delle etichette con una visita simmetrica otteniamo una sequenza | Verificare che stampando i valori delle etichette con una visita simmetrica otteniamo una sequenza | ||
crescente. | crescente. | ||
- | 4)Utilizzando il tipo | + | |
+ | ===== Esercizio | ||
+ | Utilizzando il tipo | ||
+ | < | ||
albero_d_t | albero_d_t | ||
+ | </ | ||
| | ||
l' | l' | ||
+ | < | ||
lista_d_t * tree_to_list ( albero_d_t * root ); | lista_d_t * tree_to_list ( albero_d_t * root ); | ||
- | 5) Dato il tipo | + | </ |
+ | |||
+ | ===== Esercizio | ||
+ | Dato il tipo | ||
+ | < | ||
albero_d_t | albero_d_t | ||
+ | </ | ||
| | ||
livelli dell' | livelli dell' | ||
- | 6) | + | |
- | Un albero binario di ricerca e' un albero in cui in ogni nodo | + | ===== Esercizio |
- | n | + | Un albero binario di ricerca e' un albero in cui in ogni nodo n e' verificata la relazione |
- | e' verificata la relazione | + | Etichetta(nsx)≤Etichetta(n)≤Etichetta(ndx) dove nsx e' un qualsiasi nodo dell' |
- | E | + | |
- | ( | + | |
- | nsx | + | |
- | ) | + | |
- | ≤ | + | |
- | E | + | |
- | ( | + | |
- | n | + | |
- | ) | + | |
- | ≤ | + | |
- | E | + | |
- | ( | + | |
- | ndx | + | |
- | ) | + | |
- | dove | + | |
- | nsx | + | |
- | e' un qualsiasi nodo dell' | + | |
- | ndx | + | |
- | e' un qualsiasi nodo dell' | + | |
Utilizzando il tipo | Utilizzando il tipo | ||
+ | < | ||
albero_d_t | albero_d_t | ||
+ | </ | ||
| | ||
+ | < | ||
/* inserisce l' | /* inserisce l' | ||
...... inserisci_ord ( ......, double x ); | ...... inserisci_ord ( ......, double x ); | ||
+ | |||
/* ricerca l' | /* ricerca l' | ||
| | ||
int inserisci_ord ( albero_d_t * root, double x ); | int inserisci_ord ( albero_d_t * root, double x ); | ||
+ | |||
/* cancella l' | /* cancella l' | ||
restituice il puntatore al nuovo albero */ | restituice il puntatore al nuovo albero */ | ||
......... cancella_ord ( ........., double x ); | ......... cancella_ord ( ........., double x ); | ||
+ | </ |
fisica/informatica/201516/secondoanno/laboratorio_12.1463558361.txt.gz · Ultima modifica: 18/05/2016 alle 07:59 (9 anni fa) da Roberta Gori