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, alberi binari

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 2007-8

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, alberi binari
  2. alberi: definizioni
  3. alberi: terminologia
  4. rappresentazione di alberi binari
  5. rappresentazione binaria di foreste
  6. alberi liberi e grafi
  7. alberi binari: proprietà matematiche (1)
  8. alberi binari: proprietà matematiche (2)
  9. esercizi

alberi: definizioni

popolarità degli alberi in informatica:

gli alberi sono inoltre presenti in una miriade di applicazioni: alberi genealogici, organigrammi, strutture di file system, strutture di libri, alberi sintattici, termini, ...

albero libero: grafo connesso privo di cicli

albero (radicato): albero con un vertice designato, detto radice

alberi: terminologia

rappresentazione grafica di un albero

cammino:
sequenza di vertici distinti, con vertici successivi connessi da archi

ordinamento dei vertici:

  • m<n se m precede n nel cammino dalla radice a n

terminologia: padre, figli, foglie, sottoalbero, ...

un albero è k-ario se ogni vertice ha al più al più k figli

un albero k-ario è completo se ogni vertice interno (cioè non foglia) ha k figli

un albero si dice ordinato se è definito un ordine (totale) sui figli di ciascun padre

l'altezza di un albero è la massima lunghezza (in n. di archi) dei cammini dalla radice

rappresentazione di alberi binari

albero binario = albero k-ario, con k = 2

si rappresentano in tal modo alberi binari ordinati

esempio di albero binario ordinato

rappresentazione dell'albero binario ordinato in esempio

rappresentazione binaria di foreste

la rappresentazione vista degli alberi binari ben si presta ad operazioni su di essi per l'esecuzione delle quali si proceda dalla radice verso le foglie

la suddetta rappresentazione si generalizza facilmente ad alberi k-ari, dotando di k link la struttura di rappresentazione dei vertici, oltre all'eventuale link al vertice padre, quando ciò convenga

in tutti questi casi, si può anche scegliere una rappresentazione basata su array e indici invece di strutture e puntatori, poiché è prefissato un limite massimo al numero dei figli di qualsiasi vertice

una soluzione consiste nel rappresentare l'insieme (ordinato o meno) dei figli di un vertice interno mediante una lista

qui, però, un link punta al figlio più a sinistra, l'altro punta a un fratello del vertice

una foresta è un insieme di alberi che non condividono vertici

una foresta è ordinata se tale insieme è totalmente ordinato e gli alberi sono ordinati

alberi liberi e grafi

gli alberi liberi sono grafi (non orientati) che soddisfano una proprietà caratteristica; questa può essere enunciata in vari modi: un grafo con N vertici è un albero libero se soddisfa una delle seguenti condizioni equivalenti:

un cammino in un grafo è una sequenza di vertici in cui vertici successivi sono connessi da un arco: il cammino è semplice se ogni vertice in esso occorre una sola volta

ogni cammino è semplice anche in un albero libero, caso particolare di foresta libera

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 con 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

esercizi

  1. dimostrare che esiste una biiezione fra alberi binari ordinati e foreste ordinate
  2. generalizzare la caratterizzazione degli alberi liberi qui data da cinque condizioni equivalenti sui grafi, ad una analoga caratterizzazione delle foreste libere
  3. su N vertici si possono costruire NN-2 alberi liberi: quanti alberi radicati?
  4. due alberi (ordinati o meno) sono isomorfi se esiste una biiezione fra i vertici che rispetta la relazione binaria costituita dagli archi
    • cioè: se φ è una tale biiezione, ε1 la relazione di esistenza di arco nel primo albero, ε2 quella nel secondo albero, allora per ogni coppia di vertici u, v nel primo albero: u ε1 v φ(u) ε2 φ(v)
    dimostrare che se due alberi ordinati rappresentano lo stesso albero non ordinato allora sono isomorfi, ma che non vale l'implicazione conversa
  5. progettare e implementare un algoritmo per stabilire se due alberi ordinati, rappresentati da alberi binari ordinati come indicato qui, rappresentino lo stesso albero non ordinato, e valutarne le prestazioni sia in via analitica che empirica
  6. dimostrare che, 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
  7. dimostrare che la lunghezza del cammino interno di un albero binario completo bilanciato di N vertici interni è maggiore di N lg(N/4)