Professional Documents
Culture Documents
di
Algoritmi
Strutture
Dati
[CT0371]
Esercizio 1 (Appello del 28-01-13) Scrivere un programma efficiente per stabilire se un albero binario `e
completo. Discuterne la complessit`
a.
Svolgimento:
Esercizio 2 (Appello del 28-01-13) Dato linsieme delle chiavi {1, 4, 5, 10, 16, 17, 21}, quale `e laltezza
minima hmin di un albero binario di ricerca che contenga esattamente queste chiavi? E laltezza massima
hmax? Disegnare 3 alberi binari di ricerca con le chiavi dellinsieme specificato rispettivamente di altezza
hmin, hmax e di unaltezza h tale che hmin < h < hmax.
Infine scrivere una versione ricorsiva della procedura Tree-Insert per gli alberi binari di ricerca. La procedura
ha come input un albero binario di ricerca T e un nodo z da inserire in tale albero. Discutere la complessit`
a
al caso pessimo di tale procedura.
Svolgimento:
Esercizio 3 (Appello del 06-09-13) Dato un albero di ricerca T , progettare un algoritmo efficiente che
restituisca il numero di elementi che occorrono una sola volta e analizzarne la complessit`
a.
(a) Non si possono usare strutture ausiliarie di dimensione O(n) dove n `e il numero dei nodi dellalbero.
(b) Devono essere definite esplicitamente eventuali funzioni/procedure ausiliarie. Si consideri la rappresentazione dellalbero binario di ricerca che utilizza i campi left, right, father e key.
References
[1] C. Demetrescu, I. Finocchi, G.F. Italiano, Algoritmi e strutture dati 2/ed. McGraw-Hill, 2008.
[2] T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli algoritmi e strutture dati 3/ed,
McGraw-Hill, 2010.
9-1