Alberi binari di ricerca
|
|
- Camillo Falcone
- 7 anni fa
- Visualizzazioni
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 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,
DettagliStruttura 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
DettagliAlberi 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
DettagliAlberi 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
DettagliAlberi. 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;
DettagliAlberi 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
DettagliEsercitazione 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)
DettagliAlberi 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
DettagliEsercizi 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
DettagliIn 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.
DettagliAlgoritmi 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
DettagliAlgoritmi 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)
DettagliEsercizio 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
DettagliDipartimento 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
DettagliAlberi 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
DettagliAlberi 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
DettagliAlgoritmi 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
DettagliAlberi. 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,
DettagliAlgoritmi 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
DettagliMulti-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(
DettagliAlgoritmi, 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.
Dettaglialberi 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
DettagliAlberi 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
DettagliAlberi 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
DettagliLezione 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
DettagliAlberi 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
DettagliFondamenti 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
DettagliIn 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
DettagliAlberi 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
DettagliAlberi 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
DettagliAlberi 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
DettagliAlberi 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,
DettagliAlgoritmi 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
Dettagliricerca 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,
DettagliTutoraggio 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
Dettaglid. 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
DettagliAlberi 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
DettagliAlgoritmi 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.
DettagliESERCITAZIONI 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
DettagliAlgoritmo 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
DettagliAlberi 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
DettagliESERCIZI 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
DettagliGli 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).
Dettagliricerca 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,
DettagliLE 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
DettagliAlberi 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
DettagliAlgoritmi 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.
DettagliAlgoritmi 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
DettagliDati 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
DettagliEsercizi 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
DettagliIn 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
DettagliAlbero 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
DettagliGianpiero 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:
Dettaglialgoritmi 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
DettagliDivide 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):
DettagliAlgoritmi 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
DettagliAlberi 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
DettagliAlgoritmi 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)
DettagliStrutture 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
DettagliEsame 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,
DettagliAlgoritmi 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
DettagliAlberi 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.
DettagliEsercizi 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
DettagliHeap 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
DettagliStruttura 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
DettagliALGORITMI 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
DettagliUn 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
Dettagli23/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:
DettagliADT 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:
DettagliDati 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
DettagliLaboratorio 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)
DettagliProblemi 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
DettagliAlberi 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
DettagliIn 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
DettagliAlberi 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
DettagliProva 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).
DettagliIntroduzione 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
DettagliALBERI : 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
DettagliAlberi 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
DettagliQuickSort 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
DettagliAlberi 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
DettagliEsercizi 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
DettagliAlgoritmi 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
DettagliAlberi 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
DettagliAlgoritmi 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
DettagliCode 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
DettagliEsempi. 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
DettagliIndici 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
DettagliEsercitazione 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
DettagliAlgoritmi 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
DettagliDizionari. 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
DettagliHeap 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
DettagliAlgoritmi 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
DettagliAlgoritmi 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)
DettagliLaboratorio 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
DettagliEsercizi 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
DettagliEsercizio 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
DettagliAlgoritmi 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