You are on page 1of 1

Tutorato

di

Algoritmi

Strutture

Dati

[CT0371]

Lezione 9: 10 Dicembre 2013


Tutor: Alberto Carraro
Disclaimer: Queste note non sono state sottoposte al consueto controllo riservato alle pubblicazioni ufficiali.
Esse dunque possono essere distribuite al di fuori di queste lezioni solo con il permesso del docente.

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

You might also like