Informatica 3. Informatica 3. LEZIONE 27: Strutture ad albero avanzate. Lezione 27 - Modulo 1. Trie (1) Trie binario

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Informatica 3. Informatica 3. LEZIONE 27: Strutture ad albero avanzate. Lezione 27 - Modulo 1. Trie (1) Trie binario"

Transcript

1 Informatica 3 Informatica 3 LZION 27: trutture ad albero avanzate Lezione 27 - Modulo Modulo : Trie Modulo 2: lberi bilanciati Modulo 3: trutture dati spaziali Trie olitecnico di Milano - rof. ara omai olitecnico di Milano - rof. ara omai 2 Trie () Trie binario efinizione di trie: struttura data basata sulla decomposizione dello spazio della chiave suddivisione uguale dell intervallo della chiave memorizza i record nelle foglie sempio di trie: codice di Huffmann olitecnico di Milano - rof. ara omai 3 Il fattore di ramificazione è determinato dall alfabeto utilizzato: {, } trie binario olitecnico di Milano - rof. ara omai 4

2 Trie alfabetico () Trie alfabetico (2) Il fattore di ramificazione è determinato dall alfabeto utilizzato: caratteri alfabetici + $ trie alfabetico a n t $ e a l t o e p r e $ $ h d e u e c r k $ $ o r s e $ olitecnico di Milano - rof. ara omai 5 Il fattore di ramificazione è determinato dall alfabeto utilizzato: caratteri alfabetici + $ trie alfabetico a d h n e u t deer duck $ e ant a l anteater antelope horse olitecnico di Milano - rof. ara omai 6 TRII Trie Informatica 3 TRII Trie (TRII = ractical lgorithm To Retrieve Information oded In lphanumeric) albero binario pieno che memorizza i record nelle foglie e utilizza i nodi interni per memorizzare la posizione del pattern di bit della chiave utilizzata per decidere quale ramo prendere xxxxxx xxxxxx 2 xxxxx xxxxx 2 3 xxx xxxx x olitecnico di Milano - rof. ara omai 7 Lezione 27 - Modulo 2 lberi bilanciati olitecnico di Milano - rof. ara omai 8

3 Introduzione I T possono diventare sbilanciati operazioni di ricerca e aggiornamento costose occorre utilizzare altri algoritmi di aggiornamento che abbiano buone prestazioni e che mantengano l albero bilanciato lbero VL modifica le procedure di inserimento e cancellazione dei T in modo da mantenere l albero bilanciato lbero splay non richiede che l albero sia bilanciato ma bilancia il T ogni volta che vi si accede per una ricerca o per un aggiornamento lbero VL lbero VL: T per il quale vale la seguente proprietà: per ogni nodo l algezza dei suoi sotto-alberi di sinistra e di destra differisce al massimo di accesso a un albero con n nodi: O(log n) inserimenti/cancellazioni: se sono proporzionali alla profondità dell albero sono O(log n) olitecnico di Milano - rof. ara omai 9 olitecnico di Milano - rof. ara omai sempio Rotazione singola asi e 4: rotazione singola casi: nodo più profondo sbilanciato ) il nuovo nodo è il figlio di sinistra del figlio di sinistra di 2) il nuovo nodo è il figlio di destra del figlio di sinistra di 3) il nuovo nodo è il figlio di sinistra del figlio di destra di 4) il nuovo nodo è il figlio di destra del figlio di destra di 5 olitecnico di Milano - rof. ara omai olitecnico di Milano - rof. ara omai 2

4 Rotazione doppia lbero splay asi 2 e 3: rotazione doppia G G lbero che migliora le prestazioni di un T non bilanciato obiettivo: mantenere basso il costo totale di tutti gli accessi le singole operazioni non sono efficienti (O(n)) una serie di m operazioni richiede O(m log n) per un albero di n nodi con m>=n Ogni volta che il nodo viene acceduto (inserito, cancellato, cercato) viene eseguito il processo di splaying viene spostato alla radice se viene cancellato, il padre di viene spostato alla radice olitecnico di Milano - rof. ara omai 3 olitecnico di Milano - rof. ara omai 4 Rotazione singola e è figlio della radice viene applicata una rotazione singola Rotazione a zigzag e è il figlio sinistro di e è il figlio destro di G oppure è il figlio destro di e e il figlio sinistro di G viene applicata una rotazione a zigzag spesso si ha una riduzione dell altezza dell albero G olitecnico di Milano - rof. ara omai 5 olitecnico di Milano - rof. ara omai 6

5 Rotazione a zigzig e è il figlio sinistro di e è il figlio sinistro di G oppure è il figlio destro di e e il figlio destro di G viene applicata una rotazione a zigzig sposta il nodo verso la radice sempio () Ricerca del valore 89 splaying G G G olitecnico di Milano - rof. ara omai 7 olitecnico di Milano - rof. ara omai 8 sempio (2) Ricerca del valore 89 splaying sempio (3) Ricerca del valore 89 splaying 7 9 G olitecnico di Milano - rof. ara omai 9 olitecnico di Milano - rof. ara omai 2

6 onclusioni Le rotazioni dell albero splay tendono a far avvicinare alla radice i nodi a cui si accede più di frequente Il processo tende a ribilanciare l albero L operazione di inserimento avviene come per il T, a cui segue l operazione di splying L operazione di cancellazione è equivalente al caso T e il nodo padre viene spostato alla radice Informatica 3 Lezione 25 - Modulo 3 trutture dati spaziali olitecnico di Milano - rof. ara omai 2 olitecnico di Milano - rof. ara omai 22 Introduzione k-d tree () Tutte le strutture dati viste finora: ricerca su una chiave monodimensionale pplicazioni spaziali che trattano posizioni nello spazio sistemi informativi geografici informatica grafica intelligenza artificiale strutture dati spaziali - dati organizzati per posizione olitecnico di Milano - rof. ara omai 23 k-d tree: T modificato in cui le ramificazioni ad ogni livello sono definite da un discriminatore: il discriminatore a livello i è i mod k per k dimensioni s. dati con coordinate xy: k=2 ad ogni livello il discriminatore alterna tra x e y Un nodo N a livello (radice) ha nel sottoalbero di sinistra i nodi il cui valore x è minore di N x (il sottoalbero di destra ha i nodi il cui valore x è maggiore di N x ) Un nodo M a livello ha nel sottoalbero di sinistra i nodi il cui valore y è minore di M y ecc. olitecnico di Milano - rof. ara omai 24

7 k-d tree (2) sempio: sempio: ricerca di (69,5) (4,45) (4,45) (5,7) (7,) (69,5) (5,7) (7,) (69,5) (55,8) (8,9) (55,8) (8,9) olitecnico di Milano - rof. ara omai 25 olitecnico di Milano - rof. ara omai 26 sempio: ricerca di (69,5) sempio: ricerca di (69,5) (4,45) (4,45) x: 4<69 (5,7) (7,) (69,5) (5,7) (7,) (69,5) (55,8) (8,9) (55,8) (8,9) olitecnico di Milano - rof. ara omai 27 olitecnico di Milano - rof. ara omai 28

8 sempio: ricerca di (69,5) sempio: ricerca di (69,5) (4,45) (4,45) (5,7) (7,) (69,5) (5,7) (7,) y: <5 (69,5) (55,8) (8,9) (55,8) (8,9) olitecnico di Milano - rof. ara omai 29 olitecnico di Milano - rof. ara omai 3 sempio: ricerca di (69,5) k-d tree: inserimento sempio: inserimento di (,5) (4,45) (4,45) (5,7) (7,) (69,5) (5,7) (7,) (69,5) (55,8) (8,9) (55,8) (8,9) olitecnico di Milano - rof. ara omai 3 olitecnico di Milano - rof. ara omai 32

9 k-d tree: inserimento sempio: inserimento di (,5) (4,45) (5,7) (7,) x --- (,5) (69,5) (55,8) (8,9) Quadtree (e octree) Utilizzato per la rappresentazione di superfici 2 (quadtree) o solidi 3 (octree) Tecnica di decomposizione spaziale: superficie o solido come combinazinoe di superfici o solidi con caratteristiche più semplici (es. pixel o voxel) sempio di oggetto 2: olitecnico di Milano - rof. ara omai 33 olitecnico di Milano - rof. ara omai 34 Quadtree () L idea fondamentale dei quadtree (e octree) è quella del principio della suddivisione binaria. Quadtree: si ottiene suddividendo ricorsivamente un piano 2 in 4 quadranti (,,2,3). Quando il quadtree rappresenta un area 2 ogni quadrante può essere: pieno vuoto parzialmente pieno Un quadrante parzialmente pieno è ulteriormente suddiviso in sottoquadranti. Quadtree (2) Il procedimento termina quando o tutti i quadranti sono pieni o vuoti oppure quando si raggiunge una soglia (cutoff depth). e 4 quadranti sono tutti vuoti o tutti pieni vengono sostituiti con il quadrante del livello superiore olitecnico di Milano - rof. ara omai 35 olitecnico di Milano - rof. ara omai 36

10 Quadtree (3) parzialm. pieno 2 3 pieno vuoto 3 2 Octree Octree: ono simili ai quadtree: qui le 3 dimensioni vengono suddivise in ottanti anzichè quadranti. Gli ottanti vengono identificati tramite un numero (da a 7) oppure tramite un nome simbolico (es. N, O, W ). Operazioni tipiche: unione/intersezione di due alberi si calcola in maniera molto semplice, visitando i due alberi top-down in parallelo. olitecnico di Milano - rof. ara omai 37 olitecnico di Milano - rof. ara omai 38 Operazioni su Octree/Quadtree UNION tra due alberi (quad- oppure octree) si considerano le coppie di nodi corrispondenti tra i due alberi se uno dei due nodi è vuoto si copia nell albero che rappresenta l unione l altro nodo se uno dei due nodi è pieno si copia questo nodo nell unione altrimenti si considerano i sottoquadranti/ottanti e si ripete lo stesso ragionamento INTRZION tra due alberi: si calcola come l unione, invertendo vuoto e pieno. sempio di unione quadtree quadtree 2 unione olitecnico di Milano - rof. ara omai 39 olitecnico di Milano - rof. ara omai 4

11 olitecnico di Milano - rof. ara omai 4 sempio di intersezione quadtree quadtree 2 intersezione

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 LEZIONE 16: Heap - Codifica di Huffmann Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 Lezione 16 - Modulo 1 Heap e code di priorità Introduzione

Dettagli

Informatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione:

Informatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione: Informatica 3 Informatica 3 LEZIONE 23: Indicizzazione Lezione 23 - Modulo 1 Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Indicizzazione lineare, ISAM e

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

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

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

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

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

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

ABR di altezza logaritmica

ABR di altezza logaritmica R di altezza logaritmica Esistono vari criteri di bilanciamento di alberi binari di ricerca ce ne garantiscono l altezza logaritmica. iamiamo bilanciato ogni albero binario di altezza logaritmica nel numero

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

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

La cancellazione in un AVL

La cancellazione in un AVL La cancellazione in un VL La cancellazione avviene come in un R, con la necessità di aggiornare i fattori di bilanciamento ed eventualmente ribilanciare l albero. Esempio: ancellazione di una foglia, 4

Dettagli

Strutture di accesso ai dati: B + -tree

Strutture di accesso ai dati: B + -tree Strutture di accesso ai dati: B + -tree A L B E R T O B E L U S S I S E C O N D A P A R T E A N N O A C C A D E M I C O 2 0 0 9-2 0 0 Osservazione Quando l indice aumenta di dimensioni, non può risiedere

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

Algoritmi e strutture dati Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 3 Implementazioni dei dizionari ordinati Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio

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

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

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

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

K-d-tree A L B E R T O B E L U S S I A N N O A C C A D E M I C O

K-d-tree A L B E R T O B E L U S S I A N N O A C C A D E M I C O K-d-tree A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2-2 0 1 3 Caratteristiche di base Il k-d-tree (K-dimensional tree) è un albero binario di ricerca multi-dimensionale in cui ogni nodo

Dettagli

dizionari alberi bilanciati

dizionari alberi bilanciati dizionari alberi bilanciati dizionari ADT che supportano le seguenti operazioni membership anche detta search insert delete o remove le liste e i BST sono dizionari maggio 2002 ASD2002 - Alberi bilanciati

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

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

Informatica 3. LEZIONE 15: Implementazione di alberi binari - BST. Modulo 1: Implementazione degli alberi binari Modulo 2: BST

Informatica 3. LEZIONE 15: Implementazione di alberi binari - BST. Modulo 1: Implementazione degli alberi binari Modulo 2: BST Informatica 3 LEZIONE 15: Implementazione di alberi binari - BST Modulo 1: Implementazione degli alberi binari Modulo 2: BST Informatica 3 Lezione 15 - Modulo 1 Implementazione degli alberi binari Introduzione

Dettagli

Informatica 3. Informatica 3. LEZIONE 17: Alberi generici. Lezione 17 - Modulo 1. Introduzione. ADT dell albero generico.

Informatica 3. Informatica 3. LEZIONE 17: Alberi generici. Lezione 17 - Modulo 1. Introduzione. ADT dell albero generico. Informatica 3 Informatica 3 LEZIONE 17: lberi generici Lezione 17 - Modulo 1 Modulo 1: Definizione e DT Modulo 2: Implementazione Modulo 3: lberi e classi di equivalenza Definizione e DT Politecnico di

Dettagli

TRIE (albero digitale di ricerca)

TRIE (albero digitale di ricerca) TRIE (albero digitale di ricerca) Struttura dati impiegata per memorizzare un insieme S di n stringhe (il vocabolario V). Tabelle hash le operazioni di dizionario hanno costo O(m) al caso medio per una

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

Algoritmi e Strutture Dati. HeapSort

Algoritmi e Strutture Dati. HeapSort Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene

Dettagli

Moltiplicazione veloce di interi

Moltiplicazione veloce di interi Moltiplicazione veloce di interi Ogni numero intero w di n cifre può essere scritto come 10 n/2 w s + w d w s indica il numero formato dalle n/2 cifre più significative di w w d denota il numero formato

Dettagli

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro

Dettagli

alberi completamente sbilanciati

alberi completamente sbilanciati alberi completamente sbilanciati Il numero dei nodi al livello i è 1, per 0 i altezza L altezza h di un albero completamente sbilanciato con n nodi è h = n-1 1 Un albero completamente bilanciato o pieno

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

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

Un albero completamente bilanciato o pieno (full) alberi completamente sbilanciati. Un albero binario completo

Un albero completamente bilanciato o pieno (full) alberi completamente sbilanciati. Un albero binario completo alberi completamente sbilanciati Un albero completamente bilanciato o pieno (full) Definizione: Un albero è pieno se tutte le foglie sono sullo stesso livello e ogni nodo non foglia ha due figli. Il numero

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

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

Un esempio di mutua ricorsione

Un esempio di mutua ricorsione Inserimento in un ABR n-bilanciato Un esempio di mutua ricorsione con gli alberi bilanciati in altezza, proprietà più debole, si ottiene maggiore semplicità delle operazioni di ribilanciamento (niente

Dettagli

Algoritmi e Strutture Dati. HeapSort

Algoritmi e Strutture Dati. HeapSort Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene

Dettagli

Alberi binari di ricerca

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

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

Introduzione Implementazione (1)

Introduzione Implementazione (1) Informatica 3 Informatica 3 LEZIONE 15: Implementazione di alberi binari - BST Modulo 1: Implementazione degli alberi binari Modulo 2: BST Lezione 15 - Modulo 1 Implementazione degli alberi binari Politecnico

Dettagli

Richiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Richiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Richiami di matematica discreta: grafi e alberi Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Grafi Definizione: G = (V,E) V: insieme finito di vertici E: insieme finito di archi,

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

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica Modulo di Laboratorio di Algoritmi e Strutture Dati Alberi binari Giovanna Melideo melideo@di.univaq.it 1 Alberi

Dettagli

Dizionari Liste invertite e Trie

Dizionari Liste invertite e Trie Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi

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

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Databases Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Indici Un indice consiste di coppie e supporta l efficiente recupero di tutte le etichette con chiave

Dettagli

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

Informatica 3. Informatica 3. LEZIONE 14: Alberi binari: introduzione. Lezione 14 - Modulo 1. Definizioni. Introduzione. Definizioni e proprietà

Informatica 3. Informatica 3. LEZIONE 14: Alberi binari: introduzione. Lezione 14 - Modulo 1. Definizioni. Introduzione. Definizioni e proprietà Informatica 3 Informatica 3 LEZIONE 14: Alberi binari: introduzione Lezione 14 - Modulo 1 Modulo 1: Definizioni e proprietà Modulo 2: Attraversamento degli alberi binari Definizioni e proprietà Politecnico

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

Alberi binari: definizione e alcune proprietà

Alberi binari: definizione e alcune proprietà Alberi binari: definizione e alcune proprietà Alberi binari Un albero binario è un albero con radice in cui ogni nodo ha al più due figli. In maniera più formale: Definizione. (Alberi binari) Un albero

Dettagli

Alberi Bilanciati di Ricerca

Alberi Bilanciati di Ricerca Alberi Bilanciati di Ricerca Damiano Macedonio Uniersità Ca' Foscari di Venezia mace@unie.it Copyright 2009, 2010 Moreno Marzolla, Uniersità di Bologna (http://www.moreno.marzolla.name/teaching/asd2010/)

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo

Dettagli

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

Strutture dati per insiemi disgiunti

Strutture dati per insiemi disgiunti Strutture dati per insiemi disgiunti Servono a mantenere una collezione S = {S 1, S 2,..., S k } di insiemi disgiunti. Ogni insieme S i è individuato da un rappresentante che è un particolare elemento

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

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

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono Algoritmi e Strutture Dati Laboratorio 15/12/2008 Problema della compressione Rappresentare i dati in modo efficiente Impiegare il numero minore di bit per la rappresentazione Goal: risparmio spazio su

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

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Informatica 3 LEZIONE 23: Indicizzazione Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Informatica 3 Lezione 23 - Modulo 1 Indicizzazione lineare, ISAM e

Dettagli

Informatica 3. LEZIONE 17: Alberi generici. Modulo 1: Definizione e ADT Modulo 2: Implementazione Modulo 3: Alberi e classi di equivalenza

Informatica 3. LEZIONE 17: Alberi generici. Modulo 1: Definizione e ADT Modulo 2: Implementazione Modulo 3: Alberi e classi di equivalenza Informatica 3 LEZIONE 17: Alberi generici Modulo 1: Definizione e ADT Modulo 2: Implementazione Modulo 3: Alberi e classi di equivalenza Informatica 3 Lezione 17 - Modulo 1 Definizione e ADT Introduzione

Dettagli

L albero e un tipo astratto di dati usato per rappresentare relazioni gerarchiche.

L albero e un tipo astratto di dati usato per rappresentare relazioni gerarchiche. Lezioni di C L albero e un tipo astratto di dati usato per rappresentare relazioni gerarchiche. qstruttura del file system qalbero genealogico qorganigramma qalbero di decisione q... s=6*8+((2+42)*(5+12)+987*7*123+15*54)

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

Spesso sono definite anche le seguenti operazioni:

Spesso sono definite anche le seguenti operazioni: Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

Lezione 7 Alberi binari: visite e alberi di ricerca

Lezione 7 Alberi binari: visite e alberi di ricerca Lezione 7 Alberi binari: visite e alberi di ricerca Informatica 6 Maggio 2015 Operazioni sugli alberi: visita La visita di un albero esplora tutti i nodi ed esegue una qualche operazione su di essi. Per

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

GLI ALBERI BINARI DI RICERCA. Cosimo Laneve

GLI ALBERI BINARI DI RICERCA. Cosimo Laneve GLI ALBERI BINARI DI RICERCA Cosimo Laneve argomenti 1. alberi binari di ricerca 2. la ricerca di elementi e la complessità computazionale 3. operazione di cancellazione di elementi 4. esempi/esercizi

Dettagli

ALBERI BINARI DI RICERCA

ALBERI BINARI DI RICERCA ALBERI BINARI DI RICERCA ABR Abbiamo visto che la scelta del tipo di dato astratto da utilizzare dipende dal problema. Se la situazione è tale per cui la lista deve essere continuamente modificata in dimensione

Dettagli

Introduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi

Introduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi B Introduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi Si consideri l operazione di inserimento in un AVL. Si supponga di trovarsi nel caso in cui una rotazione a

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

Corso di Programmazione

Corso di Programmazione II Accertamento del 27 Marzo 2001 / A Risolvi i seguenti esercizi, riporta le soluzioni in modo chiaro negli appositi riquadri e giustifica sinteticamente le risposte utilizzando i fogli protocollo. Cosa

Dettagli

Da libro di testo Cormen et al. CAP 21: par 21.1, 21.2, 21.3 pagg. 468-477 Strutture dati per insiemi disgiunti Una struttura dati per insiemi disgiunti mantiene una collezione S={S 1,S 2,,S k } di insiemi

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

Note per la Lezione 4 Ugo Vaccaro

Note per la Lezione 4 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che

Dettagli

Indici con gli alberi

Indici con gli alberi Indici con gli alberi Alberi perfettamente bilanciati per indici su memorie di massa: B-alberi Indici su memorie secondarie Spesso i dati da ordinare sono in quantità tale da richiedere dispositivi di

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Esercitazione 7 Domenico Fabio Savo 1 Esercitazione: heap Abbiamo visto come utilizzare i MAX-HEAP nell'algoritmo di ordinamento heapsort che permette di ordinare un array di

Dettagli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione con Vettori Implementazione con Strutture Collegate Concetti

Dettagli

Strutture Dati Efficienti per la Ricerca della Similarità

Strutture Dati Efficienti per la Ricerca della Similarità Strutture Dati Efficienti per la Ricerca della Similarità Introduzione Alberi B e B+ Clustering Alberi B+ Multidimensionali Alberi K-d Grid Files R Tree Introduzione er un insieme di oggetti multimediali,

Dettagli

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca:

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca: Informatica 3 Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su

Dettagli

Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.

Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. CERCARE SOLUZIONI Generare sequenze di azioni. Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. Strategia di ricerca: ad ogni passo scegliere

Dettagli

Esercizi parte 3. La classe ArrayBinTree dovra implementare, tra le altre, l operazione seguente: padre: dato un nodo, restituire l indice del padre.

Esercizi parte 3. La classe ArrayBinTree dovra implementare, tra le altre, l operazione seguente: padre: dato un nodo, restituire l indice del padre. Esercizi parte 3 RAPPRESENTAZIONE DI ALBERI BINARI 1. Definire una classe LinkedBinTree che implementa alberi binari in modo collegato, con nodi implementati come oggetti di classe BinNode. La classe dovra

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

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

Per semplicità eliminiamo le ripetizioni nell'albero.

Per semplicità eliminiamo le ripetizioni nell'albero. Albero binario di ricerca 20 40 100 95 Un albero binario di ricerca é un albero binario in cui ogni nodo ha un etichetta minore o uguale a quelle dei nodi nel sottoalbero radicato nel figlio destro e maggiore

Dettagli

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione Alberi Strutture dati: Alberi Strutture gerarchiche di dati Esempi Il file system di un sistema operativo L organigramma di un azienda Alberi generali, alberi n-ari, alberi binari, Ogni nodo ha un unico

Dettagli

Alberi due-tre e alberi B

Alberi due-tre e alberi B Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Curriculum SR (Sistemi e Reti) Basi di Dati e Algoritmi, a.a. 2006-07 prof. Elio Giovannetti CREDITS Alcune slides con disegni

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

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

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

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

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

Alberi e alberi binari I Un albero è un caso particolare di grafo

Alberi e alberi binari I Un albero è un caso particolare di grafo Alberi e alberi binari I Un albero è un caso particolare di grafo I I I I È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine

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