Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo del Centro IPPARI, Programmazione
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Centro ricerche IPPARI, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Programmazione

Alberi binari, attraversamento di alberi

Lezione 22 di Programmazione 2

Docente: Giuseppe Scollo

Università di Catania, sede di Comiso (RG)
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Studi in Informatica applicata, AA 2006-7

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 2

Indice

  1. Alberi binari, attraversamento di alberi
  2. alberi binari: proprietà matematiche (1)
  3. alberi binari: proprietà matematiche (2)
  4. attraversamento ricorsivo di alberi
  5. attraversamento preordine non ricorsivo
  6. attraversamento per livelli non ricorsivo
  7. esercizi

alberi binari: proprietà matematiche (1)

un albero binario completo con N vertici interni ha N+1 foglie

un albero binario completo con N vertici interni ha 2N archi: N-1 fra vertici interni e N+1 archi a foglie

definizioni:

in un albero binario completo con N vertici interni, se I è la lunghezza del cammino interno ed E è la lunghezza del cammino esterno, allora E = I + 2N

alberi binari: proprietà matematiche (2)

l'altezza h di un albero binario completo con N vertici interni soddisfa: lg N+1  h ≤ N-1

la lunghezza del cammino interno, I, di un albero binario completo con N vertici interni soddisfa: N lg(N/4) < I N(N-1)/2

gli alberi bilanciati sono spesso utili al progetto di algoritmi ottimali

attraversamento ricorsivo di alberi

attraversamento di un albero: visita (l'informazione associata a) tutti i vertici dell'albero

per gli alberi binari, si hanno tre discipline di visita ricorsiva, cioè basate sulla struttura ricorsiva dell'albero:

definizione ricorsiva di funzione di attraversamento in preordine (btree* = btlink):

per ottenere da questa le analoghe definizioni per le altre due discipline ricorsive di attraversamento basta spostare opportunamente l'invocazione di visita(h)

attraversamento preordine non ricorsivo

le tre discipline di visita ricorsiva di alberi binari danno soluzioni a svariati problemi

le suddette discipline di visita possono essere realizzate anche con algoritmi non ricorsivi, impiegando una pila

attraversamento per livelli non ricorsivo

nessuna delle tre suddette discipline di visita è adeguata al caso in cui si voglia attraversare un albero binario facendo procedere assieme gli attraversamenti dei suoi sottoalberi

è notevole il fatto che un algoritmo a tal scopo si può ottenere da quello non ricorsivo di attraversamento preordine, semplicemente adoperando una coda in luogo della pila, con le corrispondenti operazioni di inserimento e rimozione, dove l'ordine degli inserimenti coincide stavolta con quello della successiva visita, per via della disciplina FIFO

esercizi

  1. dimostrare che, un po' diversamente dall'enunciato della Proprietà 5.8 nel testo (Sedgewick, 2003), a p. 243, l'altezza di un albero binario completo bilanciato di N vertici interni è almeno lg N+1
  2. dimostrare che la lunghezza del cammino interno di un albero binario completo bilanciato di N vertici interni è maggiore di N lg(N/4)
  3. definire una funzione non ricorsiva per l'attraversamento postordine di un albero binario, adoperando una pila
  4. definire una funzione non ricorsiva per l'attraversamento inordine di un albero binario, adoperando una pila
  5. esercizio 5.81 del testo (Sedgewick, 2003), p.250: mostrare che, se una foresta è rappresentata da un albero binario secondo la corrispondenza biunivoca indicata nella lezione precedente, l'attraversamento preordine della foresta si realizza con l'attraversamento preordine dell'albero binario, mentre quello postordine della foresta si realizza con quello inordine dell'albero binario