Multi-way search trees
|
|
|
- Donata Palumbo
- 7 anni fa
- Visualizzazioni
Transcript
1 Multi-way search trees GT Argomenti Multi-way search trees Multi-way searching 9 (2,4) Trees
2 Alberi Binari di Ricerca Bilanciati n numero di chiavi (entry(key,elem)) AVL tree log( n+ 1) h( n) 2log( n) + 2 Red-Black tree log( n+ 1) h( n) 2log( n+ 1) 2-4-tree log( n+ 1) / 2 h( n) log( n+ 1) 3 Multi-Way Search Tree Un multi-way search tree è un albero ordinato tale che: ciascun nodo interno ha almeno due figli (d-node), dove d è il numero di figli memorizza d 1 entry (k i, o i ), in un nodo con figli v 1 v 2 v d e contenente le chiavi k 1 k 2 k d 1 le chiavi nel sottoalbero v 1 sono minori di k 1 le chiavi nel sottoalbero v i sono comprese tra k i 1 e k i (i = 2,, d 1) le chiavi nel sottoalbero v d sono maggiori di k d 1 I nodi esterni non contengono informazione
3 Attraversamento in_order I Binary Search Tree sono un caso speciale di multi-way search tree, con d =2 Attraversamento in-order dei multi-way search trees si visita entry (k i, o i ) del nodo v tra l attraversamento ricorsivo dei sottoalberi di v aventi come radice i figli v i and v i + 1 Attraversamento in-order: sequenza ordinata Ricerca nei multi-way search trees nel Binary Search Tree (BST) Se la chiave cercata s = k chiave del nodo trovato Se la chiave cercata s < k cerca nel sottalbero sinistro Se s > k, cerca nel sottalbero destro nel Multi-way Search Tree: ( d > 2 ) Trova le chiavi k i-1 and k i tra cui cade s, e cerca nel sottoalbero con radice il figlio v i se si arriva ad un nodo esterno insuccesso Searching for s = 8 22 Searching 5 10 for s = Not found!
4 Multi-way Searching O(h logd max ) < search time < O(h d max ) dipende dalla struttura dati secondaria usata nei nodi di T If d max è costante, il tempo di esecuzione è O(h), indipendentemente dalla struttura dati secondaria Searching for s = 8 22 Searching 5 10 for s = Not found! (2-4) trees G.T
5 (2,4) Tree Un albero (2,4) (2-4 tree or tree) è un multi-way search tree con le seguenti proprietà: Node-Size Property: ciascun nodo interno ha al più 4 figli Depth Property: tutti i nodi esterni hanno la stessa profondità Un nodo interno è chiamato: 2-node 2 figli 3-node 3 figli 4-node 4 figli Altezza di un (2,4) Tree Proposizione: Un (2,4) tree con n items ha altezza Θ(log n) Sia h l altezza di un albero (2,4) tree con n items Per la depth property, ci sono al più 4 nodi alla profondità 1, al più 4 2 alla profondità 2, etc. Numero di nodi esterni, al più 4 h ci sono almeno 2 nodi alla profondità 1, 2 2 nodi alla profondità 2, etc. Numero di nodi esterni, almeno 2 h Ma: un multiway search tree con n items ha n+1 nodi esterni (esercizio: C-9.14) 2 h n+1 e n+1 4 h h log(n+1) e log(n+1) 2h h = Θ(log n) 10 5
6 Altezza di un (2,4) Tree Complessità della ricerca in un (2,4) tree con n items è : O( h ) = O(log n) depth 0 nodes at least at most h-1 2 h 1 4 h 1 h 2 h 4 h n+1 2 h n+1 4 h log( n+ 1) / 2 h( n) log( n+ 1) 11 Inserzione in un (2,4) Tree Inserisci la nuova chiave nel nodo interno piu basso raggiunto nella ricerca (bottom-up insertion) 2-node diventa 3-node: g d d g 3-node diventa 4-node: f d g d f g e un 4-node? non c è posto overflow 12 6
7 Esempio di overflow in inserzione overflow (un 4-node v diventa un 5-node) Esempio: l inserzione della chiave 30 causa un overflow v v 13 Overflow e Split Risolviamo un overflow in un 5-node v con una operazione di split: siano v 1 v 5 i figli di v and k 1 k 4 le chiavi di v il nodo v è sostituito da v' and v" v' è un 3-node con chiavi k 1 k 2 e figli v 1 v 2 v 3 v" è un 2-node con chiave k 4 e figli v 4 v 5 la chiave k 3 è inserita nel padre u di v (eventualmente creando una nuova radice) Lo overflow si può propagare al nodo padre u u v v' v" 35 v 1 v 2 v 3 v 4 v 5 v 1 v 2 v 3 v 4 v
8 2-4 tree insert con split U h1 h2 U h1 h2 u1 u2 u3 V k1 k2 k3 k4 u1 u2 k3 u3 V k1 k2 k4 v1 v2 v3 v4 v5 v1 v2 v3 v4 v tree insert con split U h1 k3 h2 u1 u3 V' k1 k2 V'' k4 v1 v2 v3 v4 v5 16 8
9 Top Down Insertion Strategia alternativa: top down insertion e d f g n e d f n g Si parte dalla radice nella ricerca della posizione di inserimento Quando scendendo nell albero, troviamo un 4-node, lo dividiamo in due 2-node, e inseriamo il nodo di mezzo nel padre Il padre è un 2-node o 3-node d e f n g il nodo di inserimento non è 4-node 17 Esempio g n c t a f i l p r x n g c t a f i l p r x 18 9
10 Esempio (cont.) n g c i t a f l p r x n c i t a f g l p r x 19 Complessità dell inserzione in (2,4) Trees Complessità temporale: La ricerca visita O(log n) nodi Ciascun split impiega tempo, O(1) Una inserzione richiede O(log n) splits (al più fino alla radice) le operazioni di Search e Insert richiedono tempo O(log n) 20 10
11 Rimozione Si riduce la rimozione di un item al caso della rimozione di un nodo con figli esterni Eventualmente, si rimpiazza lo item con il suo successore nel inorder (o con il predecessore inorder) e si rimuove quest ultimo Esempio: per rimuovere la chiave 24, la scambiamo con 27 (successore inorder) delete delete Rimozione rimozione da un 3-node o un 4-node rimuovi la entry e un nodo esterno delete
12 Underflow e Fusione La rimozione di un item da un nodo v (2-node) può causare underflow, quando un nodo v diventa un 1-node con un figlio e senza chiavi Per gestire un underflow al nodo v con padre u, consideriamo due casi Caso 1: i fratelli adiacenti di v sono 2-nodes Fusione: si fonde v con un fratello adiacente w si muove un item da u al nodo risultante v' Dopo una fusione, lo underflow si può propagare al padre u u 9 14 w v u v' 23 Underflow e Transfer Caso 2: un fratello adiacente w di v è un 3-node o un 4-node Transfer operation: (ridistribuzione) 1. si muove un figlio di w a v 2. si muove un item da u a v 3. si muove un item da w a u u 4 9 w v u 4 8 w v
13 Esempio: 2-4 tree remove remove 4 12 elimineremo: 4, 12, 13, tree remove remove ridistribuzione
14 2-4 tree remove 12 remove predecesore nel inordine tree remove remove fusione 28 14
15 2-4 tree remove remove risultato della fusione tree remove 11 6 remove
16 2-4 tree remove 11 6 remove tree remove 11 6 remove u v
17 2-4 tree remove remove u tree remove remove la radice (vuota) può essere rimossa l'albero è diminuito di un livello 34 17
18 Analisi della rimozione Sia T un albero (2,4) con n items l albero T ha altezza h = O(log n) Nella operazione di rimozione si visitano O(log n) nodi per localizzare il nodo con l item da rimuovere si gestisce lo underflow con una serie di O(log n) fusioni, seguite da al più un transfer Ciascuna fusione e transfer richiedono tempo O(1) Pertanto la rimozione di un item da un albero (2,4) richiede tempo O(log n) 35 (2,4) Conclusioni L altezza di un albero (2,4) è O(log n) Split, transfer, e fusione richiedono O(1) Search, insertion e deletion richiedono O(log n) 36 18
Alberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
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
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
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
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
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)
Alberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella [email protected] www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
Implementazione ADT: Alberi
Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice
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
Dati e Algoritmi 1: A. Pietracaprina. Mappa (II parte)
Dati e Algoritmi 1: A. Pietracaprina Mappa (II parte) 1 Implementazione della Mappa tramite Alberi Assumiamo che le chiavi provengano da un universo ordinato Strutture basate su alberi: Albero Binario
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
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
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
Alberi Bilanciati di Ricerca
Alberi Bilanciati di Ricerca Damiano Macedonio Uniersità Ca' Foscari di Venezia [email protected] Copyright 2009, 2010 Moreno Marzolla, Uniersità di Bologna (http://www.moreno.marzolla.name/teaching/asd2010/)
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
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
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,
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
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
alberi binari e ricorsione
alberi binari e ricorsione un albero binario: ogni nodo ha al più 2 figli ogni figlio è destro o sinistro figlio sinistro nodo interno radice figlio destro foglia cammini = sequenze di nodi = sequenze
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
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
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
