Alberi binari di ricerca

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Alberi binari di ricerca"

Transcript

1 Alberi binari di ricerca Ilaria Castelli Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

2 Alberi binari di ricerca Definizione Visita dell albero Ricerca Ricerca minimo, massimo, successore Inserimento Ribilanciamento Rimozione I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

3 Alberi binari Remarks: Un albero binario si può rappresentare con una lista concatenata in cui ogni nodo rappresenta un oggetto x, costituito dai seguenti campi: key[x] p[x] left[x] right[x] Se un figlio, oppure il padre è mancante, il corrispondente puntatore contiene nil I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

4 Alberi binari di ricerca Un albero binario di ricerca è un albero binario con le seguenti caratteristiche: nei suoi nodi sono allocati gli elementi di un insieme A, su cui è definito un ordinamento totale se y è un nodo appartenente al sottoalbero sinistro di x, allora key[y] key[x] se y è un nodo appartenente al sottoalbero destro di x, allora key[y] key[x] Tutti gli elementi allocati nel sottoalbero sinistro di x precedono nell ordinamento l elemento allocato in x Tutti gli elementi allocati nel sottoalbero destro di x seguono nell ordinamento l elelemnto allocato in x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

5 Alberi binari di ricerca 5 x y1 y x 5 key[y1] <= key[x] key[y2] >= key[x] y1 4 7 y2 8 Sono entrambi alberi binari di ricerca, ma... qual è più efficiente? I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

6 Visita Inorder INORDER TREE WALK( x ) i f x!= NIL then INORDER TREE WALK( l e f t [ x ] ) p r i n t key [ x ] INORDER TREE WALK( r i g h t [ x ] ) È un algoritmo ricorsivo! Richiede tempo Θ(n) in un albero di n nodi L algoritmo stampa in ordine crescente le chiavi del sottoalbero che ha come radice il nodo x = È un algoritmo di ordinamento. Infatti vengono stampate nell ordine: le chiavi del sottoalbero sinistro di x la chiave di x le chiavi del sottoalbero destro di x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

7 Visita Inorder root[t1] 5 root[t2] I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

8 Visita in ordine anticipato e posticipato ORDINE ANTICIPATO( x ) i f x!= NIL then p r i n t key [ x ] ORDINE ANTICIPATO( l e f t [ x ] ) ORDINE ANTICIPATO( r i g h t [ x ] ) Stampa nell ordine: la chiave di x le chiavi del sottoalbero sinistro di x le chiavi del sottoalbero destro di x ORDINE POSTICIPATO( x ) i f x!= NIL then ORDINE POSTICIPATO( l e f t [ x ] ) ORDINE POSTICIPATO( r i g h t [ x ] ) p r i n t key [ x ] Stampa nell ordine: le chiavi del sottoalbero sinistro di x le chiavi del sottoalbero destro di x la chiave di x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

9 Visita in ordine anticipato e posticipato root[t1] 5 root[t2] In Order: Ordine Anticipato: Ordine Posticipato: In Order: Ordine Anticipato: Ordine Posticipato: I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

10 Ricerca TREE SEARCH( x, k ) i f x = NIL or k = key [ x ] then r e t u r n x i f k < key [ x ] then r e t u r n TREE SEARCH( l e f t [ x ], k ) e l s e r e t u r n TREE SEARCH( r i g h t [ x ], k ) Dati in ingresso il puntatore alla radice dell albero e una chiave, l algoritmo restituisce il nodo con chiave uguale a k, oppure NIL se non esiste. Sfruttando la proprietà di ordinamento dell albero binario di ricerca, l algoritmo discende l albero in modo ricorsivo. Non è necessario visitare tutti i nodi, ma solo O(h) I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

11 Ricerca Lo stesso algoritmo si può implementare usando un ciclo while, invece della ricorsione. TREE SEARCH 2( x, k ) w h i l e x!= NIL and k!= key [ x ] do i f k < key [ x ] then x = l e f t [ x ] e l s e x = r i g h t [ x ] r e t u r n x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

12 Ricerca - Esempio 1 root[t] key = Trovato! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

13 Ricerca - Esempio 2 root[t] key = N IL NON Trovato! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

14 Ricerca del minimo TREE MINIMUM( x ) w h i l e l e f t [ x ]!= NIL do x = l e f t [ x ] r e t u r n x Si sfrutta la proprietà dell albero binario di ricerca. Partendo dal nodo x si ha che: Se x ha un figlio sinistro, allora il minimo è nel sottoalbero sinistro, poiché per ogni nodo y s in esso contenuto vale key[y s ] key[x] Se x non ha un figlio sinistro, allora per ogni nodo yd contenuto nel sottoalbero destro vale key[y d ] key[x]. Quindi, il minimo è x stesso I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

15 Ricerca del massimo TREE MAXIMUM( x ) w h i l e r i g h t [ x ]!= NIL do x = r i g h t [ x ] r e t u r n x Simmetrico rispetto al problema di ricerca del minimo. La complessità in tempo per la ricerca del minimo e del massimo è pari all altezza dell albero, ossia O(h) I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

16 Ricerca del minimo e del massimo - Esempio root[t] Minimo: Trovato! Massimo: Trovato! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

17 Ricerca del successore Il successore di un nodo x è definito come il nodo y con la più piccola chiave maggiore di key[x]: succ(key[x]) = min {y T : key[x] < key[y]} Supponiamo che nell albero T ci siano solo chiavi distinte Sfruttando le proprietà dell albero binario di ricerca si può trovare il successore di x senza dover confrontare le chiavi nei nodi I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

18 Ricerca del successore TREE SUCCESSOR( x ) i f r i g h t [ x ]!= NIL then r e t u r n TREE MINIMUM( r i g h t [ x ] ) y = p [ x ] w h i l e y!= NIL and x = r i g h t [ y ] do x = y y = p [ y ] r e t u r n y 1 Se il nodo ha un figlio destro il successore di x è il minimo del sottoalbero destro 2 Se il nodo non ha un figlio destro il successore di x è il più piccolo ascendente di x il cui figlio sinistro è anch esso un ascendente di x. In pratica: si risale l albero finché il nodo di provenienza sta a sinistra. Il nodo di partenza risulta essere il massimo del sottoalbero sinistro di y. Quindi y è il suo successore. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

19 Ricerca del successore - caso 1 Se x ha un figlio destro, è sufficiente cercare il minimo del sottoalbero destro. <5 >5 root[t] minimo del sottoalbero dx Nodi visitati: I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

20 Ricerca del successore - caso 2 Se x non ha un figlio destro, si risale l albero fino a trovare la radice del sottoalbero di cui x è il massimo. root[t] 9 radice del sottoalbero di cui 8 e il massimo <8 > Nodi visitati: I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

21 Ricerca del successore - considerazioni Il tempo necessario per trovare il successore è pari a O(h), dove h è l altezza dell albero. Si percorre un cammino non più lungo della distanza massima tra la radice e una foglia. Predecessore Il predecessore di un nodo x è definito come il nodo y con la più grande chiave minore di key[x]: pred(key[x]) = max {y T : key[y] < key[x]} Per trovare il nodo predecessore si utilizza un algoritmo simmetrico: TREE-PREDECESSOR(x) (Esercizio) Anche TREE-PREDECESSOR(x) richiede tempo O(h), per motivi analoghi. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

22 Inserimento e rimozione Inserendo o rimuovendo un elemento la struttura dell albero cambia L albero deve mantenere le proprietà di un albero binario di ricerca La struttura dell albero varia a seconda della sequenza di dati inseriti o rimossi L inserimento è un operazione semplice e immediata La rimozione è più complessa... I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

23 Inserimento 1 TREE INSERT (T, z ) 2 y = NIL / padre / 3 x = r o o t [T] / f i g l i o / 4 5 w h i l e x!= NIL / f i n c h e non s i r a g g i u n g e l a p o s i z i o n e 6 i n c u i i n s e r i r e z ( x = NIL ) / 7 y = x / memorizza i l nodo padre / 8 i f key [ z ] < key [ x ] / p r e n d i i l f i g l i o g i u s t o / 9 then x = l e f t [ x ] 0 e l s e x = r i g h t [ x ] 1 2 p [ z ] = y / i n s e r i s c i z come f i g l i o d i y / 3 i f y = NIL / s e l a l b e r o e vuoto / 4 then r o o t [T] = z / z d i v e n t a l a r a d i c e / 5 e l s e i f key [ z ] < key [ y ] / a l t r i m e n t i e un f i g l i o d i y / 6 then l e f t [ y ] = z 7 e l s e r i g h t [ y ] = z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

24 Inserimento Si usano due puntatori x e y x scende lungo l albero alla ricerca della posizione in cui inserire z y punta al padre di x Nel ciclo while, x scende al figlio destro o sinistro a seconda dell esito del confronto tra key[z] e key[x] Si esce dal ciclo quando x = NIL: x occupa la posizione in cui z verrà inserito e quindi y punta al nodo che diventerà il padre di z Nelle linee viene effettuato l inserimento Che costo ha l operazione di inserimento? Il tempo necessario è O(h): non più del cammino massimo tra la radice e una foglia I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

25 Inserimento - esempio 1 T REE INSERT (T, z) con key[z] = 14 root[t] y 19 z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

26 Inserimento - esempio 2 sequenza: root[t] 5 root[t] 5 root[t] root[t] 5 root[t] 5 root[t] I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

27 Inserimento - esempio 3 sequenza: root[t] La struttura dell albero risulta diversa a seconda della sequenza di inserimento! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

28 Ribilanciamento Come ristrutturare l albero in modo che sia bilanciato? Supponiamo di partire da un albero bilanciato per = 1 Se l albero ottenuto dopo un inserimento risulta non bilanciato dobbiamo: individuare il nodo critico, cioè il nodo al livello massimo che viola il bilanciamento ristrutturare il sottoalbero che ha come radice il nodo critico 25 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

29 Ribilanciamento - caso 1 ρ r Nodo critico s r s τ h h+1 k r < s σ < s σ > r z > s σ τ ρ σ z k+1 z 1 L albero ristrutturato ancora un albero binario di ricerca, poiché lo spostamento dei nodi r, s e dei sotto alberi ρ, σ e τ rispetta l ordinamento degli elementi allocati nell albero 2 Nella sezione dell albero che è stata alterata nessun nodo presenta sbilanciamento 3 Nella sezione dell albero che non è stata alterata nessun nodo può presentare sbilanciamento, poiché nella sezione alterata si è ripristinato il livello massimo k + 1 che era raggiunto nell albero originario prima dell inserimento di z k+2 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

30 Ribilanciamento - caso 2 r Nodo critico t s r t s h h+1 h+2 σ < t σ > r τ < s t > r ρ σ τ k σ τ ω ρ z ω k+1 z 1 L albero ristrutturato ancora un albero binario di ricerca, poiché lo spostamento dei nodi r, s, t e dei sotto alberi ρ, σ, τ e ω rispetta l ordinamento degli elementi allocati nell albero 2 Nella sezione dell albero che è stata alterata nessun nodo presenta sbilanciamento 3 Nella sezione dell albero che non è stata alterata nessun nodo può presentare sbilanciamento, poiché nella sezione alterata si è ripristinato il livello massimo k + 1 che era raggiunto nell albero originario prima dell inserimento di z k+2 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

31 Ribilanciamento - esempio r s s r z z 25 ρ = σ = τ = I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

32 Ribilanciamento - esempio 2 8 r t 10 5 s 16 r 8 s t σ = {9} τ = {12} ρ =sottoalbero con radice 5 = {5, 3, 6} ω =sottoalbero con radice 18 = {18, 17, 26} I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

33 Ribilanciamento - considerazioni Poiché si può ribilanciare un albero binario di ricerca in tempo costante dopo l inserimento di un nuovo elemento, questa struttura permette di eseguire una qualsiasi sequenza di operazioni di inserzione e ricerca in modo efficiente. Il numero massimo di confronti tra elementi richiesto da tali operazioni coincide con h, l altezza dell albero. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

34 Rimozione T REE DELET E(T, z) Ci sono tre casi: 1 Se z non ha figli, si modifica p[z] in modo che punti non più a z, ma a NIL 2 Se z ha un unico figlio, si taglia fuori z dall albero, facendo puntare p[z] all unico figlio di z 3 Se z ha due figli, si individua il suo successore, ossia il minimo del suo sottoalbero destro. Il successore y ha al più il figlio destro (perchè?). Quindi y prende il posto di z, e i dati in y vengono copiati nella posizione di z. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

35 Rimozione - caso 1 z senza figli: key[z] = z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

36 Rimozione - caso 2 z con un figlio: key[z] = z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

37 Rimozione - caso 3 z con due figli: key[z] = z y successore di z: viene rimosso e va al posto di z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

38 Rimozione - caso 3 z con due figli: key[z] = y I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

39 Rimozione 1 TREE DELETE(T, z ) 2 i f l e f t [ z ] = NIL or r i g h t [ z ] = NIL 3 then y = z / z ha 0 o 1 f i g l i o / 4 e l s e y = TREE SUCCESSOR( z ) / z ha 2 f i g l i, c e r c o succ ( z ) / 5 i f l e f t [ y ]!= NIL / x = f i g l i o non n u l l o d i y / 6 then x = l e f t [ y ] 7 e l s e x = r i g h t [ y ] / Nota : x puo d i v e n t a r e NIL / 8 9 i f x!= NIL / s e y ha un f i g l i o, t a g l i o f u o r i y / 0 then p [ x ] = p [ y ] 1 i f p [ y ] = NIL / s e y e r a l a r a d i c e / 2 then r o o t [T] = x / x d i v e n t a l a r a d i c e / 3 e l s e i f y = l e f t [ p [ y ] ] / a l t r i m e n t i x d i v e n t a f i g l i o 4 d e l padre d i y / 5 then l e f t [ p [ y ] ] = x 6 e l s e r i g h t [ p [ y ] ] = x 7 i f y!= z / s e i l nodo che ho t o l t o e s u c c ( z ) / 8 then key [ z ] = key [ y ] / c o p i o y a l p o s t o d i z / 9 // s e y ha anche a l t r i a t t r i b u t i c o p i a l i i n z 0 r e t u r n y I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

40 Rimozione - considerazioni Se siamo nel caso 1 oppure 2 l operazione di rimozione è immediata Se siamo nel caso 3 è necessario eseguire la procedura T REE SUCCESSOR(z), che ha una complessità temporale O(h) Quindi la rimozione richiede tempo O(h) Le operazioni di inserimento e di rimozione richiedono tempo O(h) I. Castelli Alberi binari di ricerca, A.A. 2009/ /39

Alberi Binari di Ricerca

Alberi Binari di Ricerca Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,

Dettagli

Struttura di dati che può essere usata sia come dizionario, sia come coda con priorità

Struttura di dati che può essere usata sia come dizionario, sia come coda con priorità Albero binario di ricerca Struttura di dati che può essere usata sia come dizionario, sia come coda con priorità Proprietà: sia x un nodo di un (sotto)albero binario di ricerca Se y è un nodo del sottoalbero

Dettagli

Alberi Binari di Ricerca

Alberi Binari di Ricerca Alberi Binari di Ricerca Algoritmi su gli alberi binari: visite Dato un puntatore alla radice di un albero vogliamo scandire in modo sistematico tutti i nodi di tale albero In una lista abbiamo una unica

Dettagli

Alberi binari di ricerca

Alberi binari di ricerca Alberi binari di ricerca Definizione Visita dell albero inorder Ricerca Ricerca minimo, massimo e successore. Inserimento ed eliminazione di un nodo Problema del bilanciamento dell albero Albero binario

Dettagli

Alberi. Se x è il genitore di y, allora y è un figlio di x. Un albero binario è un albero in cui ogni nodo ha al massimo due figli.

Alberi. Se x è il genitore di y, allora y è un figlio di x. Un albero binario è un albero in cui ogni nodo ha al massimo due figli. Alberi Un albero è un insieme di oggetti, chiamati nodi, su cui è definita una relazione binaria G(x, y) che leggiamo x è genitore di y tale che: 1. esiste un unico nodo, chiamato radice, che non ha genitori;

Dettagli

Alberi di ricerca binari

Alberi di ricerca binari Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino Introduzione Gli alberi di ricerca binari (Binary Search Tree, o BST) sono una struttura di dati che supporta in modo

Dettagli

Esercitazione 6. Alberi binari di ricerca

Esercitazione 6. Alberi binari di ricerca Esercitazione 6 Alberi binari di ricerca Struttura base Rappresentabile attraverso una struttura dati concatenata in cui ogni nodo è un oggetto di tipo struttura Ogni nodo contiene: campo chiave (key)

Dettagli

Alberi Binari di Ricerca e Alberi Rosso-Neri

Alberi Binari di Ricerca e Alberi Rosso-Neri Alberi Binari di Ricerca e Alberi Rosso-Neri Obiettivi Studiare strutture dati che consentano di effettuare in modo efficiente le operazioni di Minimo e massimo Successore Inserimento e cancellazione Ricerca

Dettagli

Esercizi su ABR. Prof. E. Fachini - Intr. Alg.!1

Esercizi su ABR. Prof. E. Fachini - Intr. Alg.!1 Esercizi su ABR Confronto proprietà ABR e Max-Heap. Proprietà del cammino radice-foglia individuato da una ricerca. Fusione di due ABR. Il successivo calcolato dalla radice Costruzione di un ABR bilanciato

Dettagli

In questa lezione Alberi binari di ricerca

In questa lezione Alberi binari di ricerca In questa lezione Alberi binari di ricerca!1 Dizionari Un dizionario è una struttura dati costituita da un insieme con le operazioni di inserimento, cancellazione e verifica di appartenenza di un elemento.

Dettagli

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Grafo Un grafo G è una coppia (V, E) ove V è un

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Alberi Binari di Ricerca (BST) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Alberi Binari di Ricerca (Binary Search Trees BST)

Dettagli

Esercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1.

Esercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1. Esercizio 1 E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1 livello 0 FB = -1 FB = -1 livello 1 FB = -1 livello 2 livello 3 L altezza è 3, il minimo si trova nel

Dettagli

Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4

Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Bilanciamento negli alberi di ricerca @ G. Gini 2013 Dizionari Dizionario Insieme dinamico che implementa le seguenti funzionalità Cerca

Dettagli

Alberi Binari di Ricerca. Vittorio Maniezzo Università di Bologna

Alberi Binari di Ricerca. Vittorio Maniezzo Università di Bologna Alberi Binari di Ricerca 1 Vittorio Maniezzo Università di Bologna Look up table, dati ordinati Collezione di dati nella forma di coppie attributo / valore, in cui i campi chiave sono ordinabili. Caso

Dettagli

Alberi Binari di Ricerca

Alberi Binari di Ricerca Alberi Binari di Ricerca 1 Vittorio Maniezzo Università di Bologna Look up table, dati ordinati Collezione di dati nella forma di coppie attributo / valore, in cui i campi chiave sono ordinabili. Caso

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Alberi di ricerca Domenico Fabio Savo 1 Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato Dizionario 2 Alberi binari di ricerca (BST

Dettagli

Alberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati

Alberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati Alberi CORDA Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati Albero - definizione Albero Figli, fratelli, nodi, foglie Grado, livello, altezza,

Dettagli

Algoritmi e Strutture Dati. Capitolo 6 Il problema del dizionario

Algoritmi e Strutture Dati. Capitolo 6 Il problema del dizionario Algoritmi e Strutture Dati Capitolo 6 Il problema del dizionario Il tipo dato Dizionario Suppongo sempre che mi venga dato un riferimento diretto all elemento da cancellare Applicazioni: gestione archivi

Dettagli

Multi-way search trees

Multi-way search trees Multi-way search trees GT. 10.4 1 Argomenti Multi-way search trees Multi-way searching 9 (2,4) Trees 2 5 7 10 14 2 1 Alberi Binari di Ricerca Bilanciati n numero di chiavi (entry(key,elem)) AVL tree log(

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 3.d: Strutture Dati Dinamiche Alberi

Algoritmi, Strutture Dati e Programmi. UD 3.d: Strutture Dati Dinamiche Alberi Algoritmi, Strutture Dati e Programmi : Strutture Dati Dinamiche Alberi Prof. Alberto Postiglione AA 2007-2008 ALBERO BINARIO DI RICERCA Dispense, cap. 3.3.3 1 Albero Binario di Ricerca Struttura bidimensionale.

Dettagli

alberi binari di ricerca (BST)

alberi binari di ricerca (BST) Le tabelle di simboli e gli alberi binari di ricerca (BT) ianpiero abodi e Paolo amurati Dip. utomatica e Informatica Politecnico di Torino Tabelle di simboli Definizione: una tabella di simboli è una

Dettagli

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Alberi Un albero è una collezione non vuota di: nodi con nome e informazioni

Dettagli

Alberi ed Alberi Binari di Ricerca

Alberi ed Alberi Binari di Ricerca Alberi ed Alberi Binari di Ricerca Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell

Dettagli

Lezione 15. Algoritmi su gli alberi binari: visite

Lezione 15. Algoritmi su gli alberi binari: visite Lezione 15 Alberi binari di ricerca Algoritmi su gli alberi binari: visite Dato un puntatore alla radice di un albero vogliamo scandire in modo sistematico tutti i nodi di tale albero In una lista abbiamo

Dettagli

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica giovedì 9

Dettagli

Fondamenti teorici e programmazione

Fondamenti teorici e programmazione Fondamenti teorici e programmazione FTP(A) - modb Lezione 9 di ricerca binaria F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 liberi Un albero libero è un

Dettagli

In questa lezione Alberi binari di ricerca: la cancellazione

In questa lezione Alberi binari di ricerca: la cancellazione In questa leione Alberi binari di ricerca: la cancellaione 1 L algoritmo di Hibbard per cancellare (1962) Sia il nodo da cancellare: 1) è una foglia: si rimuove 2) ha un solo figlio x: si rende x figlio

Dettagli

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Alberi binari di ricerca

Alberi binari di ricerca Alberi binari di ricerca Definizione Un albero si dice albero binario di ricerca è un albero binario in cui: - Ogni nodo è caratterizzato un valore chiamato chiave - L insieme delle chiavi è totalmente

Dettagli

Alberi binari di ricerca

Alberi binari di ricerca Alberi binari di ricerca Gli alberi binari di ricerca sono ottime strutture dati per memorizzare coppie di elementi (k, e) chiave elemento di un dizionario. Un albero binario di ricerca T è un albero binario

Dettagli

Alberi ed Alberi Binari

Alberi ed Alberi Binari Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Alberi Rosso-Neri (RB-Trees) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Alberi Rosso-Neri Altezza nera di un red-black tree Un albero

Dettagli

ricerca di un elemento, verifica dell appartenenza di un elemento

ricerca di un elemento, verifica dell appartenenza di un elemento Alberi Binari di Ricerca Gli alberi binari di ricerca (o, alberi di ricerca binaria) sono strutture dati che consentono, su un insieme di elementi con un ordine totale le operazioni di: ricerca di un elemento,

Dettagli

Tutoraggio Informatica Generale Inserimento e cancellazione in un ABR Counting Sort

Tutoraggio Informatica Generale Inserimento e cancellazione in un ABR Counting Sort Tutoraggio Informatica Generale Inserimento e cancellazione in un ABR Counting Sort A.Festa festa@mat.uniroma1.it 20-5-2010 1 Inserimento e cancellazione in ABR Quando si inserisce o si rimuove un elemento

Dettagli

d. Cancellazione del valore 5 e. Inserimento del valore 1

d. Cancellazione del valore 5 e. Inserimento del valore 1 Esercizio1 Si consideri un albero binario non vuoto in cui a ciascun nodo v è associato un numero reale v.val. Scrivere un algoritmo che, dato in input l'albero T e un numero reale x, restituisce true

Dettagli

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09)

ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09) ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 0/0) DISPENSA N. 6 Esercizi su alberi di ricerca e AVL Notazione: Per un albero T scriviamo T per indicare il numero dei nodi di T e h(t ) per indicare

Dettagli

Algoritmo di ordinamento sul posto che ha tempo di esecuzione :

Algoritmo di ordinamento sul posto che ha tempo di esecuzione : QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : O(n2 ) nel caso peggiore O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior algoritmo

Dettagli

Alberi binari. Alberi Albero binario Heap tree

Alberi binari. Alberi Albero binario Heap tree Alberi binari Alberi Albero binario eap tree Albero Ogni nodo può avere un numero arbitrario di figli Un nodo senza figli viene detto foglia siste un nodo particolare chiamato radice, tutti gli altri hanno

Dettagli

ESERCIZI DI ALGORITMI E STRUTTURE DATI 2 Parte 2. Livio Colussi Dipartimento di Matematica Pura ed Applicata Università di Padova

ESERCIZI DI ALGORITMI E STRUTTURE DATI 2 Parte 2. Livio Colussi Dipartimento di Matematica Pura ed Applicata Università di Padova ESERCIZI DI ALGORITMI E STRUTTURE DATI 2 Parte 2 Livio Colussi Dipartimento di Matematica Pura ed Applicata Università di Padova 19 maggio 2006 2 Esercizio 18 Perché in un B-albero non possiamo avere grado

Dettagli

Gli ordini di visita di un albero binario di 9 nodi sono i seguenti: A, E, B, F, G, C, D, I, H (anticipato)

Gli ordini di visita di un albero binario di 9 nodi sono i seguenti: A, E, B, F, G, C, D, I, H (anticipato) Alberi Indovina l albero Gli ordini di visita di un albero binario di 9 nodi sono i seguenti: A, E, B, F, G, C, D, I, H (anticipato) B, G, C, F, E, H, I, D, A (posticipato) B, E, G, F, C, A, D, H, I (simmetrico).

Dettagli

ricerca di un elemento, verifica dell appartenenza di un elemento

ricerca di un elemento, verifica dell appartenenza di un elemento Alberi Binari di Ricerca Gli alberi binari di ricerca (o, alberi di ricerca binaria) sono strutture dati che consentono, su un insieme di elementi con un ordine totale le operazioni di: ricerca di un elemento,

Dettagli

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione

Dettagli

Alberi rosso neri. API a.a. 2013/2014 Gennaio 23, 2014 Flavio Mutti, PhD

Alberi rosso neri. API a.a. 2013/2014 Gennaio 23, 2014 Flavio Mutti, PhD Alberi rosso neri API a.a. 2013/2014 Gennaio 23, 2014 Flavio Mutti, PhD 2 Sommario Definizione Operazione di rotazione Inserimento Cancellazione Temi d esame 3 Introduzione Un albero rosso-nero è un albero

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Alberi Rosso-Neri (RB-Trees) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Alberi Rosso-Neri: definizione Un albero rosso-nero

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Si definisca Interval Tree un albero binario di ricerca le

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

In questa lezione. Alberi binari: [CLRS09] cap. 12 per la visita inorder. visite e esercizi su alberi binari. Prof. E. Fachini - Intr. Alg.

In questa lezione. Alberi binari: [CLRS09] cap. 12 per la visita inorder. visite e esercizi su alberi binari. Prof. E. Fachini - Intr. Alg. In questa lezione Alberi binari: visite e esercizi su alberi binari [CLRS09] cap. 12 per la visita inorder!1 Visita inordine di un albero binario visita inordine(x) se l albero x non è nullo allora visita

Dettagli

Albero binario. Alberi binari (introduzione) Terminologia. Alberi di ricerca binaria (BST)

Albero binario. Alberi binari (introduzione) Terminologia. Alberi di ricerca binaria (BST) Albero binario 2 Alberi binari (introduzione) Struttura di dati bidimensionale formata da nodi costituiti ciascuno dai dati da memorizzare e da due link Ver. 2.4 20 - Claudio Fornaro - Corso di programmazione

Dettagli

Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino. Prestazioni dei BST

Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino. Prestazioni dei BST Gli alberi bilanciati Gianpiero abodi e Paolo amurati Dip. utomatica e nformatica Politecnico di Torino Prestazioni dei BT Prestazioni variabili da: logaritmiche: caso migliore, albero bilanciato lineari:

Dettagli

algoritmi e strutture di dati

algoritmi e strutture di dati algoritmi e strutture di dati alberi rosso-neri m.patrignani contenuto definizione di alberi rosso-neri proprietà degli alberi rosso-neri complessità delle operazioni elementari rotazioni inserimenti e

Dettagli

Divide et impera su alberi

Divide et impera su alberi Divide et impera su alberi Caso base: peru = null o una foglia Decomposizione: riformula il problema per i sottoalberi radicati nei figli di u. Ricombinazione: ottieniilrisultatoconricombina 1 Decomponibile(u):

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Alberi Rosso-Neri (RB-Trees) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Alberi Rosso-Neri Definizione Altezza nera di un red-black tree

Dettagli

Alberi binari di ricerca

Alberi binari di ricerca Alberi binari di ricerca Definizione Un albero si dice albero binario di ricerca è un albero binario in cui: - Ogni nodo è caratterizzato un valore chiamato chiave - L insieme delle chiavi è totalmente

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Alberi di ricerca Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario 2 Alberi binari di ricerca (BST = binary search tree)

Dettagli

Strutture dati Alberi binari

Strutture dati Alberi binari Strutture dati - 2 - Alberi binari Definizione L albero è un insieme di elementi (nodi), sui quali è definita una relazione di discendenza con due proprietà: esiste un solo nodo radice senza predecessori

Dettagli

Esame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z

Esame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z Esame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z Anno Accademico 2002-2003 9 luglio 2002-03 Domanda 1, punti 6 Si consideri la seguente classe Java, in cui,

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Alberi AVL Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 26/7 Alberi AVL Definizione (bilanciamento in altezza): un albero è bilanciato

Dettagli

Alberi di ricerca. Dizionari. Definizione. Alberi binari di ricerca (BST = binary search tree) Algoritmi e Strutture Dati

Alberi di ricerca. Dizionari. Definizione. Alberi binari di ricerca (BST = binary search tree) Algoritmi e Strutture Dati Algoritmi e Strutture Dati Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario Alberi di ricerca Basato su materiale di C. Demetrescu, I. Finocchi, G.F.

Dettagli

Esercizi su alberi binari

Esercizi su alberi binari Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica

Dettagli

Heap binomiali. Oltre alle precedenti operazioni fondamentali degli heap riunibili, sugli heap binomiali definiremo anche le due ulteriori operazioni:

Heap binomiali. Oltre alle precedenti operazioni fondamentali degli heap riunibili, sugli heap binomiali definiremo anche le due ulteriori operazioni: Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea un heap vuoto. Insert(H, ) : aggiunge il nodo allo heap. Minimum(H) : ritorna

Dettagli

Struttura dati Dizionario

Struttura dati Dizionario Struttura dati Dizionario Un dizionario è : un insieme di coppie (elemento, chiave) Sul campo chiave è definita una relazione d'ordine totale Su cui definiamo le seguenti operazioni: insert(elem e, chiave

Dettagli

ALGORITMI E STRUTTURE DATI

ALGORITMI E STRUTTURE DATI ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Puntatori e Alberi, ABR StudentiDIA

Dettagli

Un esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem

Un esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem Un esempio: l ADT Dizionario (mutabile) Algoritmi e Laboratorio a.a. 2006-07 Lezioni Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Parte 19-D Alberi

Dettagli

23/10/2016. gli alberi. alcune definizioni. un esempio. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica.

23/10/2016. gli alberi. alcune definizioni. un esempio. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. gli alberi Un albero è una struttura dati NON LINEARE organizzata gerarchicamente. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica È costituito da un insieme di nodi collegati tra di loro:

Dettagli

ADT Dizionario. Ordered search table. Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D:

ADT Dizionario. Ordered search table. Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D: Ordered search table Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D: possiamo memorizzare le entrate di D in un array list S in ordine non decrescente di chiavi:

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Scrivere una versione iterativa di TreeSearch con la stessa

Dettagli

Laboratorio 26 Aprile 2012

Laboratorio 26 Aprile 2012 Laboratorio 26 Aprile 2012 Albero binario di ricerca: Ricerca Scrivere un programma che legga da tastiera una sequenza di n interi distinti e li inserisca in un albero binario di ricerca (senza ribilanciamento)

Dettagli

Problemi di ordinamento

Problemi di ordinamento Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata

Dettagli

Alberi rosso-neri. Oltre ad essere alberi binari di ricerca, gli alberi rosso-neri soddisfano le seguenti proprietà:

Alberi rosso-neri. Oltre ad essere alberi binari di ricerca, gli alberi rosso-neri soddisfano le seguenti proprietà: Alberi rosso-neri Gli alberi rosso-neri sono alberi binari di ricerca in cui le operaioni Insert e Delete sono opportunamente modificate in modo tale da garantire un altea dell albero h = O(log n). A tale

Dettagli

In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi.

In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi. In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi. 1 strutture dati (astratte) Una struttura dati astratti consiste di uno o più insiemi con delle operazioni

Dettagli

Alberi rosso-neri. Le operazioni sugli alberi binari di ricerca hanno complessità proporzionale all altezza h dell albero.

Alberi rosso-neri. Le operazioni sugli alberi binari di ricerca hanno complessità proporzionale all altezza h dell albero. Alberi rosso-neri Le operazioni sugli alberi binari di ricerca hanno complessità proporzionale all altezza h dell albero. Gli alberi rosso-neri sono alberi binari di ricerca in cui le operazioni Insert

Dettagli

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE Prova di Algoritmi e s.d. (1o anno) 17 Settembre 2002 TESTO e RISPOSTE Esercizio 1 (punti 7 in prima approssimazione) Consideriamo alberi binari con insieme dei nodi NODI = N (l'insieme dei naturali).

Dettagli

Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi. Parte prima

Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi. Parte prima Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi Parte prima 1) Si dimostri il teorema sulla limitazione inferiore per il tempo asintotico di esecuzione nel caso

Dettagli

ALBERI : introduzione SOMMARIO ALBERI ALBERI. ALBERI: introduzione ALBERI BINARI: introduzione VISITE RICORSIVE DI ALBERI

ALBERI : introduzione SOMMARIO ALBERI ALBERI. ALBERI: introduzione ALBERI BINARI: introduzione VISITE RICORSIVE DI ALBERI SOMMARIO ALBERI: introduzione ALBERI BINARI: introduzione VISITE RICORSIVE DI ALBERI Dimensione e Altezza ALBERI BINARI DI RICERCA (BST) Introduzione Ricerca, inserimento e cancellazione Implementazione

Dettagli

Alberi binari. Alberi binari di ricerca

Alberi binari. Alberi binari di ricerca Alberi binari Alberi binari Alberi binari di ricerca Cause: Inserimenti Sbilanciamento Cancellazioni Alberi binari Alberi binari di ricerca Alberi binari di ricerca bilanciati Alberi binari Alberi binari

Dettagli

QuickSort Università degli Studi di Milano

QuickSort Università degli Studi di Milano QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior

Dettagli

Alberi di ricerca. Alberi binari di ricerca. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Alberi di ricerca. Alberi binari di ricerca. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill) Alberi di ricerca Alberi binari di ricerca Un esempio: l ADT Dizionario (mutabile) Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Alberi binari di

Dettagli

Esercizi BST - AVL. E. Fachini

Esercizi BST - AVL. E. Fachini Esercizi BST - AVL. Verifica che un ABR è un AVL 2. verifica bilanciamento in altezza di un ABR 3. Costruzione alberi di Fibonacci 4. Calcolo altezza albero AVL in O(lg n) 5. split di una ABR intorno a

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta

Dettagli

Alberi Rosso-Neri: definizione

Alberi Rosso-Neri: definizione Alberi Rosso-Neri: definizione Altezza di un red-black tree Un albero Rosso Nero (Red Black Tree, RB tree) èunalbero binario di ricerca in cui ad ogni nodo viene associato un colore rosso o nero Ogni nodo

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi

Dettagli

Code a priorità. Progettazione di Algoritmi Matricole congrue a 1. Docente: Annalisa De Bonis

Code a priorità. Progettazione di Algoritmi Matricole congrue a 1. Docente: Annalisa De Bonis Code a priorità Progettazione di Algoritmi 2018-19 Matricole congrue a 1 Docente: Annalisa De Bonis 26 Coda a priorità Una coda a priorità è un collezione di elementi a ciascuno dei quali è assegnata una

Dettagli

Esempi. Albero di interi. Struttura che non è un albero!

Esempi. Albero di interi. Struttura che non è un albero! albero si dice "grafo diretto" un insieme di nodi legati "a due a due" da archi direzionati (puntatori) un albero è un grafo diretto in cui ogni nodo può avere un solo arco entrante ed un qualunque numero

Dettagli

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2 INDICI MULTILIVELLO DINAMICI Indici multilivello dinamici (B-alberi e B + -alberi) Gli indici multilivello dinamici (B-alberi e B + -alberi) sono casi speciali di strutture ad albero. Un albero è formato

Dettagli

Esercitazione 5 Alberi Binari di Ricerca

Esercitazione 5 Alberi Binari di Ricerca Esercitazione 5 Alberi Binari di Ricerca Corso di Fondamenti di Informatica II Algoritmi e strutture dati A.A. 2015/2016 11 Maggio 2016 Sommario Scopo di questa esercitazione è realizzare una struttura

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli Scuola di Scienze e Tecnologie Università di Camerino Definizione (bilanciamento in altezza): un albero è bilanciato in altezza se le altezze dei sottoalberi sinistro

Dettagli

Dizionari. Realizzazione con alberi binari di ricerca. Alberi rosso-neri. Ugo de' Liguoro - Algoritmi e Seprimentazioni 03/04 Lez.

Dizionari. Realizzazione con alberi binari di ricerca. Alberi rosso-neri. Ugo de' Liguoro - Algoritmi e Seprimentazioni 03/04 Lez. Dizionari Realizzazione con alberi binari di ricerca. Alberi rosso-neri. Dizionari con gli alberi Astro, Dado, Lana, Mela, Tasto,Vela, Zappa Mela Astro Tasto Zappa Alberi binari di ricerca Gli alberi binari

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Algoritmi e strutture dati 16 Dicembre 2004 Canali A L e M Z Cognome Nome Matricola

Algoritmi e strutture dati 16 Dicembre 2004 Canali A L e M Z Cognome Nome Matricola Algoritmi e strutture dati 16 Dicembre 04 Canali A L e M Z Cognome Nome Matricola Problema 1 (6 punti) Determinare la funzione calcolata dal metodo mistero e la sua complessità computazionale in funzione

Dettagli

Algoritmi e Strutture Dati. Alberi di Ricerca Alberi Bilanciati I (Alberi AVL)

Algoritmi e Strutture Dati. Alberi di Ricerca Alberi Bilanciati I (Alberi AVL) Algoritmi e Strutture Dati Alberi di Ricerca Alberi Bilanciati I (Alberi AVL) Alberi bilanciati di ricerca Gli alberi binari di ricerca sono semplici da gestire (inserimenti e cancellazioni facili da implementare)

Dettagli

Laboratorio di Algoritmi

Laboratorio di Algoritmi Laboratorio di Algoritmi Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Martedì 8.30-10.30 in aula 3 Mercoledì 10.30-13.30 in aula 2 Giovedì 15.30-18.30 in

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 29 novembre 2010 1 Rotazioni semplici in ABR Si consideri l operazione di rotazione semplice applicata

Dettagli

Esercizio Per quali valori di t l albero in figura è un B-Albero legale?

Esercizio Per quali valori di t l albero in figura è un B-Albero legale? Esercizi di Algoritmi e strutture dati II: B-Alberi. A cura di: Teresa E. NARDIELLO Esercizio 19.1-2 Per quali valori di t l albero in figura è un B-Albero legale? M D H Q T X B C F G J K L N P R S V W

Dettagli

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

Dettagli