B-Alberi Esercitazioni

Размер: px
Начинать показ со страницы:

Download "B-Alberi Esercitazioni"

Транскрипт

1 B-Alberi Esercitazioni

2 Introduzione B-Trees: alberi bilanciati di ricerca progettati per essere memorizzati su dischi magnetici. Dischi magnetici molto più lenti delle memorie ad accesso casuale. La misura dell efficienza di un B-albero è data anche dal numero di accessi che si effettuano al disco. Il numero di accessi al disco aumenta con l aumentare dell altezza dell albero. Mantenere bassa l altezza del B-albero.

3 DISK-READ(x) DISK-WRITE(x) elle applicazioni dei B-alberi viene elaborata una grande uantità di dati al punto che spesso la memoria principale on è sufficiente. oluzione: iene copiato un nodo alla volta dal disco alla memoria rincipale: procedura DISK-READ(x). opo la sua elaborazione, viene riscritto nel disco se è stato odificato: procedura DISK-WRITE(x).

4 Esempio di B-albero root[t] M D H Q T X B C F G J K L N P R S V W Y Z Se un nodo x di un B-albero contiene n[x] chiavi, allora x ha n[x]+1 figli.

5 Definizione dei B-alberi (I). Ogni nodo x è caratterizzato dai seguenti campi o attributi: a) n[x], numero delle chiavi memorizzate in x; b) le n[x] chiavi sono ordinate in modo non decrescente: key 1 [x]<= key 2 [x]<= <= key n[x] [x]; c) leaf[x], un valore boolean cheè TRUE se x è una foglia, FALSE altrimenti.. Un nodo interno x contiene n[x]+1 puntatori, c 1 [x], c 2 [x],, c n[x]+1 [x ai suoi figli.. I campi key i [x] definiscono gli intervalli delle chiavi memorizzate in ogni sottoalbero: se k i è una qualunque chiave memorizzata nel sottoalbero, di radice c i [x], allora k 1 <=key 1 [x]<=k 2 <=key 2 [x]<= <=key n[x] [x]<=k n[x]+1

6 Definizione dei B-alberi (II) 4. Tutte le foglie sono alla stessa profondità, che coincide con l altezza dell albero. 5. Il numero di chiavi che un nodo può contenere è limitato (superiormente e inferiormente); dipende dal grado minimo t>=2: a) Ogni nodo (ad eccezione della radice) deve contenere almeno t-1 chiavi. Ogni nodo interno (ad eccezione della radice) deve avere almeno t figli. Se non è un albero vuoto, la radice deve contenere almeno una chiave. b) Ogni nodo può contenere al massimo 2t-1 chiavi, quindi un nodo interno può avere al massimo 2t figli.

7 Definizione dei B-alberi (III) Riassumendo: Grado minimo Limite numero figli Numero di figli di x Numero di chiavi di x Numero di chiavi di root t >= 2 t <= c[x] <= 2t c[x] = n[x]+1 t-1 <= n[x] <= 2t-1 1 <= n[root] <= 2t-1

8 Esercizio 1 Per quale valore di t, il seguente è un B-albero lecito? M D H Q T X B C F G J K L N P R S V W Y Z

9 Esercizio 2 (I) Si mostrino alcuni B-alberi leciti con grado minimo uguale a 2 che rappresentano l insieme di chiavi {1, 2, 3, 4, 5} t=2 key={1, 2, 3, 4, 5} t-1 <= n[x] <= 2t-1 1<= n[x] <= 3 t <= c[x] <= 2t 2 <= c[x] <= 4

10 Esercizio 2 (II) c[x] = 2 n[x] = c[x] = 3 n[x] =

11 Esercizio 3 (I) Si derivi un limite superiore stretto del numero delle chiavi che possono essere memorizzate in un B-albero con altezza h in funzione del grado minimo t. h Σ [(2t) 2 * (2t-1)] i=0

12 Operazioni di base sui B-alberi Si assume che: a) la radice dell albero è sempre contenuta in memoria principale; b) tutti i nodi che vengono passati come parametro alle procedure sono già presenti in memoria principale. RICERCA DI UNA CHIAVE B-Tree-Search(x, k){ int i = 1; while(i<=n && k>key i [x]) i++; if(i<=n[x] && k=key i [x]) return (x, i) if(leaf(x)) return null; else {DISK-READ(c i [x]); return B-Tree-Search(c i [x], k) }

13 RICERCA DI UNA CHIAVE: complessità Per ricercare una chiave all interno di un B-albero, lo si percorre lungo un cammino che porta dalla radice alle foglie. Il numero di accessi al disco della procedura B-Tree- Search è dato da Θ(h)= Θ(log i n), dove h è l altezza e n è il numero di chiavi del B-albero. Siccome n[x]<2t, il tempo impiegato dal ciclo while per esaminare un nodo qualsiasi è O(t), pertanto il tempo totale di CPU è O(th)=O(t*log i n)

14 REAZIONE di un B-albero VUOTO B-Tree-Create(){ x=allocatenode(); leaf(x)=true; n[x]=0; DISK-WRITE(x); root[t]=x;} Dove AllocateNode() crea un nuovo nodo su disco.

15 DIVISIONE di un nodo in un B-albero (I) Procedura necessaria quando si deve inserire una nuova chiave in un nodo: se tale nodo è pieno*, non è possibile effettuare tale operazione quindi bisogna dividerlo. Il nodo viene diviso all altezza della sua chiave mediana key t [x]. Il risultato di questa operazione è che il nodo x viene diviso in due nodi con t-1 chiavi ciascuno. un nodo x è pieno quando n[x]= 2t-1

16 DIVISIONE di un nodo in un B-albero (II) -Tree-Split-Child(x, i, y){ z=allocatenode(); leaf(z)=leaf(y); n[z]=t-1; for(j=1; j<=t-1; j++;) key j [z]=key j+t [y]; if(!leaf(y)) for(j=1; j<=t; j++;) c j [z]=c j+t [y] n[y]=t-1; for(j=n[x]+1; j>=i+1; j--;) c j+1 [x]=c j [x]; c i+1 [x]=z; for(j=n[x]; j>=i; j--;) key j+1 [x]=key j [x]; key i [x]=key t [y]; n[x]++; } DISK-WRITE(y); DISK-WRITE(z); DISK-WRITE(x); Complessità: Il tempo di CPU richiesto dalla procedura B- Tree-Split-Child è di Θ(t), per la presenza dei due cicli for.

17 IVISIONE di un nodo in un B-albero (III) x key i-1 [x] key i [x] x key i-1 [x] key i [x] key i+1 [x] N W. N S W y=c i [x] P Q R S T U V y=c i [x] P Q R z=c i+1 [x] T U V T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8

18 INSERIMENTO di una chiave in un B-albero (I) Operazione che viene fatta attraverso una singola visita all albero di altezza h, che richiede O(h) accessi al disco. Il tempo di CPU richiesto è O(th)=O(t*log t n). La procedura B-Tree-Insert utilizza la la procedura B- Tree-Split-Child per garantire che non si inserisca mai la chiave in un nodo già pieno.

19 } INSERIMENTO di una chiave in un B-albero (II) B-Tree-Insert(T, k){ r =root[t]; if(n[r]==2t-1) { s=allocatenode(); root[t]=s; leaf(s)=false; n[s]=0; c 1 [s]=r; B-Tree-Split-Child(s,1,r); B-Tree-NonFull(s, k); } else B-Tree-Insert-NonFull(r, k);

20 INSERIMENTO di una chiave in un B-albero (III L operazione che divide la radice è l unica che fa aumentare di una unità l altezza dell albero. root[t s H root[t] r r A D F H L N P A D F L N P T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8

21 B-Tree-Insert-NonFull B-Tree-Insert-NonFull(x, k){ i=n[x]; if(leaf(x)){ while(i>=1 && k<key i [x]) { key i+1 [x]=key i [x]; i--; } key i+1 [x]=k; n[x]++; DISK-WRITE(x);} else{ while(i>=1 && k<key i [x]) i--; i++; DISK-READ(c i [x]); if(n[c i [x]]=2t-1){ B-Tree-Split-Child(x, i, c i [x]); if(k>key i [x]) i++; } B-Tree-Insert-NonFull(c i [x], k);}

22 ESERCIZIO 4 (I) Nel B-albero sottostante, inserire le seguenti chiavi: {B, Q, L, F}. root[t] G M P X A C D E J K N O R S T U V Y Z

23 ESERCIZIO 4 (II) root[t] G M P X A B C D E J K N O R S T U V Y Z root[t] G M P T X A B C D E J K N O Q R S U V Y Z

24 ESERCIZIO 4 (III) root[t] P G M T X A B C D E J K L N O Q R S U V Y Z root[t] P C G M T X A B D E F J K L N O Q R S U V Y Z

25 ESERCIZIO 5 (I) Si mostrino i risultati dell inserzione della sequenza di chiavi {F, S, Q, K, C, L, H, T} per t=2.

Alberi binari di ricerca

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

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

Подробнее

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

Подробнее

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

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

Подробнее

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

Подробнее

Alberi Binari di Ricerca

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,

Подробнее

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

Подробнее

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Подробнее

Lezione 12 Tabelle Hash

Lezione 12 Tabelle Hash Lezione 12 Tabelle Hash Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 2 ABR: Visita Scrivere un programma che legga

Подробнее

I B+ Alberi. Sommario

I B+ Alberi. Sommario I B+ Alberi R. Basili (Basi di Dati, a.a. 2002-3) Sommario Indici organizzati secondo B + -alberi Motivazioni ed Esempio Definizione Ricerca in un B + -albero Esempio Vantaggi Inserimento/Cancellazione

Подробнее

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)

Подробнее

Progettazione Fisica - 1. Concetti di Base - 1. Indici. Progettazione di Basi di Dati. Assunzioni Fondamentali

Progettazione Fisica - 1. Concetti di Base - 1. Indici. Progettazione di Basi di Dati. Assunzioni Fondamentali Università degli Studi di Trieste Progettazione Fisica - 1 Corso di Laurea in Informatica - Basi di Dati Progettazione di Basi di Dati Progettazione Fisica: gli D. Gubiani maggio 2008 Lo schema ottenuto

Подробнее

lezione 9 min-heap binario Heap e Alberi posizionali generali

lezione 9 min-heap binario Heap e Alberi posizionali generali lezione 9 Heap e Alberi posizionali generali min-heap binario Un min-heap è un albero binario quasi completo in cui ogni nodo i diverso dalla radice soddisfa la seguente proprietà: il valore memorizzato

Подробнее

Implementazione ADT: Alberi

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Espressioni aritmetiche

Espressioni aritmetiche Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:

Подробнее

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

Подробнее

Lezione 9 Alberi binari di ricerca

Lezione 9 Alberi binari di ricerca Lezione 9 Alberi binari di ricerca Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Lista monodirezionale Scrivere

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco.

Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco. Alberi Alberi Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo Fosco Dora Drogo Frodo Dudo Daisy Alberi Gli alberi sono una generalizzazione

Подробнее

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

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

Подробнее

Introduzione. Heap-binomiali: un heap binomiale è un insieme di alberi binomiali.

Introduzione. Heap-binomiali: un heap binomiale è un insieme di alberi binomiali. Heap binomiali 1 Introduzione Heap-binomiali: un heap binomiale è un insieme di alberi binomiali. Alberi-binomiali: un albero binomiale è un albero ordinato definito ricorsivamente. 2 Proprietà degli alberi

Подробнее

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

Подробнее

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

Подробнее

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO

Подробнее

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

Подробнее

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

Подробнее

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

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

Подробнее

Algoritmi e Strutture Dati

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

Подробнее

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 Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra

Подробнее

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

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

Подробнее

Alberi Binario in Java

Alberi Binario in Java Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un

Подробнее

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei Alberi Alberi: definizioni Alberi Binari Esercizi su alberi binari: metodi ricorsivi Struttura dati per alberi generici 1 Alberi Gli alberi sono strutture dati naturalmente ricorsive Un albero è un particolare

Подробнее

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

Подробнее

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Подробнее

Esercizi Capitolo 6 - Alberi binari di ricerca

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

Подробнее

Algoritmi e Strutture Dati. Alberi

Algoritmi e Strutture Dati. Alberi Algoritmi e Strutture Dati Alberi Alberto Montresor Università di Trento 2017/10/19 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Sommario 1 Introduzione

Подробнее

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L

Подробнее

Algoritmi e Strutture Dati

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

Подробнее

Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Riassunto sui dizionari

Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Riassunto sui dizionari Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006 Alberi di Ricerca Bilanciati Marco Antoniotti Riassunto sui dizionari Dizionario: astrazione di collezioni Operazioni fondamentali

Подробнее

Alberi Rosso-Neri: definizione

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

Подробнее

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

Подробнее

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

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

Подробнее

ADT Coda con priorità

ADT Coda con priorità Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni

Подробнее

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Подробнее

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

Подробнее

Alberi binari di ricerca

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

Подробнее

Verificare se un albero binario è bilanciato

Verificare se un albero binario è bilanciato Verificare se un albero binario è bilanciato Definizione: Un albero è bilanciato nel Numero dei Nodi, brevemente n- bilanciato, quando, per ogni sottoalbero t radicato in un suo nodo, il numero dei nodi

Подробнее