Alberi Rosso-Neri: definizione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Alberi Rosso-Neri: definizione"

Transcript

1 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 di un RB tree ha quattro campi: key, left, right e p (come nel caso degli alberi di ricerca ordinari) + color Vincolando il modo in cui possiamo colorare i nodi lungo un qualsiasi percorso che va dalla radice ad una foglia, riusciamo a garantire che l abero sia approssivatimente bilanciato

2 Alberi Rosso-Neri: proprietà Altezza di un red-black tree Un RB tree è un albero binario di ricerca che soddisfa le seguenti proprietà (dette RB-properties): 1 ogni nodo è rosso o nero 2 la radice è nera 3 ogni foglia è nera 4 se un nodo è rosso, entrambi i suoi figli devono essere neri 5 per ogni nodo n, tutti i percorsi da n ad una qualsiasi delle sue foglie discendenti contengono lo stesso numero di nodi neri

3 Alberi Rosso-Neri: proprietà Altezza di un red-black tree (1) ogni nodo è rosso o nero (2) la radice è nera

4 Alberi Rosso-Neri: proprietà Altezza di un red-black tree (3) ogni foglia è nera (basta aggiungere un ulteriore livello fittizio)

5 Alberi Rosso-Neri: proprietà Altezza di un red-black tree (4) se un nodo è rosso entrambi i suoi figli sono neri

6 Alberi Rosso-Neri: proprietà Altezza di un red-black tree (5) per ogni nodo n, tutti i percorsi da n ad una qualsiasi delle sue foglie discendenti contengono lo stesso numero di nodi neri

7 Alberi Rosso-Neri: un esempio Altezza di un red-black tree Figura: red-black trees una versione semplificata

8 Alberi Rosso-Neri: proprietà 5 Altezza di un red-black tree Un albero rosso-nero senza nodi rossi è bilanciato: tutti i suoi livelli sono completi tranne al più l ultimo, al quale può mancare qualche foglia

9 Alberi bilanciati Alberi Rosso-Neri: definizione Altezza di un red-black tree Definizione (fattore di bilanciamento): il fattore di bilanciamento (v) diunnodov è definito come la differenza tra l altezza del suo sottoalbero sinistro e quella del suo sottoalbero destro (v) =altezza[left[v]] altezza[right[v]] Definizione (bilanciamento in altezza) definizione alternativa: un albero è bilanciato in altezza se, per ogni nodo v, (v) 1

10 Alberi Rosso-Neri: proprietà 4 Altezza di un red-black tree

11 Idea di base Alberi Rosso-Neri: definizione Altezza di un red-black tree Per la proprietà 5 (tutti i cammini da un nodo x alle foglie contengono lo stesso numero di nodi neri) un albero rosso-nero senza nodi rossi deve essere bilanciato: tutti i suoi livelli sono completi tranne al più l ultimo, al quale può mancare qualche foglia Non èperò quasi completo (come nel caso di alberi che rappresentano un heap) perchè le foglie mancanti non sono necessariamente quelle più a destra A questo albero bilanciato possiamo aggiungere non troppi nodi rossi (grazie alla proprietà 4:se un nodo è rosso i suoi figli deveno essere neri) Ciò rende l albero quasi bilanciato. Cerchiamo di formalizzare questo concetto

12 Black-height di un RB tree Altezza di un red-black tree Sia T un red-black tree: Per ogni nodo x di T,l altezza nera di x bh(x) èparial numero di nodi neri (escluso x) che si incontrano lungo un cammino da x ad una foglia L altezza nera dell albero è definita come l altezza nera della sua radice r, ossia bh(t )=bh(r) Per la proprietà 5, il concetto di altezza nera è ben definito,in quanto tutti i percorsi che scendono da un nodo contengono lo stesso numero di nodi neri

13 Alberi Rosso-Neri: altezza nera Altezza di un red-black tree

14 Calcolo dell altezza nera di x Altezza di un red-black tree bh(x) =0 x bh(x) =h +1 x bh(x) =h h l (a) r h h l (b) r h x bh(x) =h x bh(x) =h h l r h 1 (c) h 1 l (d) r h

15 Altre proprietà dell altezza nera Altezza di un red-black tree 1 se x è rosso bh(x) = bh(p[x]) 2 se x ènerobh(x) =bh(p[x]) 1 3 in entrambi i casi bh(x) bh(p[x]) 1

16 Un paio di risultati utili Altezza di un red-black tree Lemma 1: Il numero di nodi interni di un sottoalbero radicato in x è maggiore o uguale di 2 bh(x) 1. Teorema 1: L altezza massima di un RB tree con n nodi interni è2log(n +1).

17 Un paio di risultati utili Altezza di un red-black tree Lemma 1: Il numero di nodi interni di un sottoalbero radicato in x è maggiore o uguale di 2 bh(x) 1 Proof: Procediamo per induzione sull altezza h di x. Nel seguito, denoteremo con int(x) il numero dei nodi interni del sottoalbero radicato in x. h = 0 e quindi x è una foglia (i.e. x = Nil). In questo caso int(x) =0ebh(x) = 0. Quindi: int(x) =0 2 bh(x) 1=2 0 1=0

18 Un paio di risultati utili Altezza di un red-black tree Lemma 1: Il numero di nodi interni di un sottoalbero radicato in x è maggiore o uguale di 2 bh(x) 1 Proof: h > 0. In questo caso x ha due figli l = left[x] edr = right[x] con bh(l), bh(r) bh(x) 1 (proprietà 3 dell altezza nera). Inoltre, per ipotesi induttiva int(l) 2 bh(l) 1 2 bh(x) 1 1 e int(r) 2 bh(r) 1 2 bh(x) 1 1. Allora: int(x) 1+int(l)+int(x) 1+(2 bh(x) 1 1) + (2 bh(x) 1 1) = 2 2 bh(x) 1 1 = 2 bh(x) 1

19 Un paio di risultati utili Altezza di un red-black tree Teorema 2: L altezza massima di un RB tree con n nodi interni è 2log(n +1). Proof: sia h l altezza dell albero per la un prop. 4, almeno metà dei nodi in qualsiasi cammino dalla radice ad una foglia (esclusa la radice) devono essere neri (dopo ogni nodo rosso c è almenounnodonero) di conseguenza, bh(t )=bh(root) h/2 Per il Lemma 1, n = int(root) 2 bh(root) 1 2 h/2 1, ossia 2 h/2 n +1 Allora: h/2 log(n +1)e h 2log(n +1)

20 Alberi Rosso-Neri: definizione Sono delle operazioni di ristrutturazione locale dell albero

21 Vediamo nel dettaglio le operazioni di inserimento e cancellazione di un nodo Le operazioni Search, Minimum e Maximum, Successor e Predecessor possono essere implementate esattamente come per gli alberi binari di ricerca ordinari

22 di un nodo z Come per gli alberi binari di ricerca, l inserimento di un nodo z in un RB tree cerca un cammino dalla root dell albero fino al nodo p che diventerà suo padre Una volta identificato p, z viene aggiunto come figlio sinistro (se key [z] < key [p])odestro(sekey [z] > key [p]) di p e colorato di rosso Quali RB-properties possono essere violate in conseguenza di questo inserimento? Solo due: - la proprietà 2(sez viene inserito in un albero vuoto) - la proprietà 4(sez viene aggiunto come figlio di un nodo rosso) La procedura che elimina violazioni delle RB-properties dovute all inserimento di una chiave èlarb-insert-fixup(t, z); qui z è il nodo che da luogo alla violazione

23 RB-Insert-Fixup(T, z) Ripristina la proprietà 2 colorando la root z (che in questo caso è rossa) di nero Ripristina la proprietà 4, eseguendo (ricorsivamente) delle rotazioni e ricolazioni sul nodo z; decidiamo in base a tre possibili casi: 1 lo zio y di z è rosso 2 lo zio y di z èneroez è un figlio destro 3 lo zio y di z èneroez è un figlio sinistro

24 Caso 1: lo zio y di z è rosso C = C new z A p[z] D y A D B z δ ɛ B δ ɛ Figura: in questo caso, A e D diventano neri e C diventa rosso. Inoltre C diventa il nuovo z dato che il suo cambiamento di colore potrebbe aver causato una violazione della proprietà 4

25 Caso 2: lo zio y di z èneroez è un figlio sinistro C = B B p[z] D y A C A z δ ɛ D δ ɛ Figura: B (i.e. p[z]) diventa nero; C (i.e. p[p[z]]) diventa rosso; ruotiamo C adestra

26 Caso 3: lo zio y di z èneroez è un figlio destro C = C A p[z] D y B D B z δ ɛ A new z δ ɛ Figura: viene ricondotto al caso 2 ruotando A, i.e. p[z] a sinistra. A questo punto non ci resta che colorare C di rosso, B di rosso e ruotare C adestra

27 Caso 3: lo zio y di z èneroez è un figlio destro Attenzione alle simmetrie!!! C = D B y D p[z] C E E z B δ ɛ δ ɛ Figura: D (i.e. p[z]) diventa nero; C (i.e. p[p[z]]) diventa rosso; ruotiamo C a sinistra

28 Caso 2: lo zio y di z èneroez è un figlio sinistro C = C B y E p[z] B D D z ɛ E new z δ δ ɛ Figura: ruotiamo E adestraede diventa il nuovo z. Osservate che, dopo la rotazione, z è un figlio destro di un nodo D che a sua volta èun figlio destro

29 Analisi Alberi Rosso-Neri: definizione RB-Insert-Fixup(T, z) richiede un tempo O(log 2 n) Di conseguenza, anche RB-Insert(T, z) richiede un tempo O(log 2 n)

30 : un esercizio Figura: inserimentodi41e Figura: inserimento di 31

31 : un esercizio Figura: inserimento di 12 12

32 : un esercizio Figura: inserimento di 19

33 : un esercizio Figura: inserimento di 8

34 di un nodo con due figli Nota: possiamo sempre assumere di eliminare un nodo che ha al più unfiglio. Infatti, nel caso in cui il nodo z da eliminare ha due figli, possiamo sostituire la chiave di z con quella di y = Tree-Successor(T, z) (il successore di z), e poi rimuovere y Poichè z è un nodo con due figli, il suo successore y èilnodopiùa sinistra del sottoalbero destro; inoltre: y non può avere un figlio sinistro (altrimenti non sarebbe il nodo più a sinistra del sottoalbero destro) di conseguenza, y ha al più il figlio destro

35 di un nodo con al più un figlio Sia z il nodo da cancellare, siano x e p l unico figlio ed il padre di z, rispettivamente (nota: sez è una foglia, allora x è Nil). Per eliminare z, eseguiamo i seguenti passi: 1. inanzitutto, rimuoviamo z collegando p con x (p diventa il padre di x ed x diventa il figlio di p); 2. z era rosso: possiamo semplicemente terminare perchè l eliminazione di z non causa violazioni delle RB-properties 3. z era nero: potremmo causare una violazione della proprietà 5

36 Eliminazione: z rosso p p z x x Figura: Eliminare un nodo rosso non causa violazioni delle RB-properties

37 Eliminazione: z nero e suo figlio x rosso p p z x x Figura: Il figlio rosso di z acquisisce un extra credito diventando nero

38 Eliminazione: z nero e suo figlio x nero p p z x x Figura: Il figlio nero di z acquisisce un extra credito diventando doppio nero. Eseguiamo RB-Delete-FixUp(T, x) per ripristinare la proprietà 5

39 di un nodo con al più un figlio Per ristabilire la proprietà 5nelcaso3 (eliminazione di un nodo z nero), si attribuisce al nodo x (figlio di z) un extra credito Questo significa che se x è rosso lo coloriamo di nero, mentre se x è gia nero assume un colore fittizio detto doppio nero, cheserve per ricordarci che abbiamo collassato due nodi neri in uno. Nel calcolo della black-height un nodo doppio nero conta due volte Infine, eseguiamo una procedura (RB-Delete-Fixup(T, x)) che spingerà, mediante rotazioni e ricolazioni, l extra credito verso la radice dove verrà ignorato Se lungo il cammino verso la radice incontriamo un nodo rosso, esso sarà semplicemente colorato di nero

40 RB-Delete-Fixup(T,x) Nel ripristinare la proprietà 5, teniamo conto di una serie di casi (ottenuti confrontando il colore di x con quello di suo fratello w) 1. w è nero ed ha almeno un figlio rosso. Possiamo distinguere ulteriori due sottocasi: 1.1 il figlio destro di w è rosso 1.2 il figlio sinistro di w è rosso e quello destro ènero 2. w è nero ed ha entrambi i figli neri. Anche in questo caso distinguiamo due possibili sottocasi 2.1 il nodo p[x] (cheè anche il padre di w) è rosso 2.2 il nodo p[x] ènero 3. w è rosso

41 Caso 1.1: w nero e figlio destro di w rosso = B D A x D w B E C E A C ɛ ζ δ ɛ ζ δ Figura: scambiamo il colore di B con quello di w; ruotiamob a sinistra 1 abbiamo aggiunto un nodo nero a sinistra (possiamo togliere il doppio nero da A) 2 eliminato un livello nero a destra; coloriamo E di rosso

42 Caso 1.1: w nero e figlio destro di w rosso B D A x D w B E C E A C ɛ ζ δ ɛ ζ δ Figura: eliminamo l extra nero rappresentato da x colorando B (il padre di x) ede (il figlio destro di w) di nero e ruotando B a sinistra

43 RB-Delete-Fixup, caso 1.2: w è nero, il figlio sinistro di w è rosso e quello destro ènero B B A x D w A x C new w C E D δ ɛ ζ δ E ɛ ζ Figura: questo caso è trasformato nel caso 1.1 colorando C (i.e. left[w]) di nero, D (i.e. w) di rosso e ruotando D adestra

44 RB-Delete-Fixup, caso 2.1: w haentrambiifiglinerie p[x] è rosso B B A x D w A D C E C E δ ɛ ζ δ ɛ ζ Figura: eliminamo il doppio nero del nodo x togliendo un credito nero sia ad A che a D (quindi A diventa nero ordinario e D diventa rosso) e facendo acquisire un extra credito a B (il padre di x) che da rosso diventa nero

45 RB-Delete-Fixup, caso 2.2: w haentrambiifiglinerie p[x] ènero B B new x A x D w A D C E C E δ ɛ ζ δ ɛ ζ Figura: è simile al caso 3.1, di nuovo togliamo un credito nero sia ad A che a D (A diventa nero ordinario e D diventa rosso) e facendo acquisire un extra credito a B che da nero diventa doppio-nero. A questo punto B diventa il nuovo x

46 RB-Delete-Fixup: caso 3 B D A x D w B E C E x A new w C ɛ ζ δ ɛ ζ δ Figura: viene trasformato in uno dei casi precedenti colorando D (i.e. w) di rosso, B (i.e. p[x]) di nero e ruotando il padre di x a sinistra

47 Analisi Alberi Rosso-Neri: definizione RB-Delete-Fixup(T, x) richiede un tempo O(log 2 n) Di conseguenza, anche RB-Delte(T, x) richiede un tempo O(log 2 n)

48 : un esempio Figura: cancellazione di 8

49 : un esempio Figura: cancellazione di 12 31

50 : un esempio Figura: cancellazione di 19

51 : un esempio Figura: cancellazione di Figura: cancellazione di 38

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

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

Dettagli

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

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

Dettagli

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

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

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,

Dettagli

Alberi Binari di Ricerca

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

Dettagli

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

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

Esercizi Capitolo 6 - Alberi binari di ricerca

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

Dettagli

Algoritmi e Strutture Dati

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

Dettagli

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

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

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

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

Algoritmi e Strutture Dati

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

Dettagli

Un heap binario è un albero binario con le seguenti caratteristiche:

Un heap binario è un albero binario con le seguenti caratteristiche: Heap Un heap binario è un albero binario con le seguenti caratteristiche: È quasi completo: tutti i livelli, tranna al più l ultimo sono completi e le foglie dell ultimo livello sono tutte adossate a sinistra.

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

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

Dettagli

Alberi binari di ricerca

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

Dettagli

Alberi binari. Ilaria Castelli [email protected] A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

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

Dettagli

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

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

Dettagli

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

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

Dettagli

Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1

Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Algoritmi (9 CFU) (A.A. 2009-10) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Overview Definiamo la struttura dati heap Operazioni di costruzione e gestione di un heap Algoritmo Heapsort Code

Dettagli

Alberi binari di ricerca

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

Dettagli

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:

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

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

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

Dettagli