Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe...

47
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano

Transcript of Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe...

Page 1: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Capitolo 6Alberi di ricerca

Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano

Page 2: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl2

Dizionari

• Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario

Page 3: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl3

Alberi binari di ricerca

(BST = binary search tree)

Page 4: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl4

Definizione

Albero binario che soddisfa le seguenti proprietà– ogni nodo v contiene un elemento elem(v) cui è

associata una chiave chiave(v) presa da un dominio totalmente ordinato

– le chiavi nel sottoalbero sinistro di v sono ≤ chiave(v)

– le chiavi nel sottoalbero destro di v sono ≥ chiave(v)

Page 5: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl5

Albero binario di ricerca

Esempi

Albero binario non di ricerca

Page 6: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl6

15

6 18

3 7 17 20

2 4 13

9

Ordinamentocrescente

minimo

massimo

Ordinamento decrescente

…ancora un esempio…

Page 7: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl7

Visita simmetrica di un BST

• Che succede se eseguo una visita in ordine simmetrico di un BST?

• Visita in ordine simmetrico – dato un nodo x, elenco prima il sotto-albero sinistro di x, poi il nodo x, poi il sotto-albero destro

• visito i nodi dell’ABR in ordine crescente rispetto alla chiave!

Page 8: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl8

Verifica di correttezza – Supponiamo,per semplicità, che l’albero sia completo. Indichiamo con h l’altezza dell’albero.Vogliamo mostrare che la visita in ordine simmetrico restituisce la sequenza ordinata

Per induzione sull’altezza dell’ABR: h=1

r

u v

NIL NIL NIL NIL

chiave(u) ≤ chiave(r) ≤ chiave(v)

Page 9: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl9

Verifica correttezza (continua …)

h = generico (ipotizzo che la procedura sia corretta per h-1)

r

Albero di altezza h-1. Tutti i suoi elementi sono minori o uguali della radice

Albero di altezza h-1. Tutti i suoi elementi sono maggiori o uguali della radice

Page 10: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl10

search(chiave k) -> elem

Traccia un cammino nell’albero partendo dalla radice: su ogni nodo, usa la proprietà di ricerca per decidere se proseguire nel sottoalbero sinistro o destro

Page 11: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl11

15

6 20

3 8 17 27

2 4 137 16 19 22

search(7)

30

Page 12: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl12

insert(elem e, chiave k)

1. Crea un nuovo nodo u con elem=e e chiave=k

2. Cerca la chiave k nell’albero, identificando così il nodo v che diventerà padre di u

3. Appendi u come figlio sinistro/destro di v in modo che sia mantenuta la proprietà di ricerca

Page 13: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl13

15

6 18

3 9 17 20

2 4 13

10

7

insert(e,8)

Se seguo questo schema l’elemento e viene posizionato nellaposizione giusta. Infatti, per costruzione, ogni antenato di e si ritrova e nel giusto sottoalbero.

8

Page 14: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl14

Ricerca del massimo

Nota: è possibile definire una procedura min(nodo u) in maniera del tutto analoga

Page 15: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl15

15

6 18

3 8 17 20

2 4 13

9

7

min (r)

max (u)

Page 16: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl16

• il predecessore di un nodo u in un BST è il nodo v nell’albero avente massima chiave chiave(u)

• il successore di un nodo u in un BST è il nodo v nell’albero avente minima chiave chiave(u)

• Come trovo il predecessore/successore di un nodo in un BST?

predecessore e successore

Page 17: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl17

Ricerca del predecessore

Page 18: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl18

Nota: la ricerca del successore di un nodo è simmetrica

15

6 18

3 8 17 20

2 4 13

9

7

Cerco il min del sottoalbero destro

Cerco l’antenato più prossimo di v il cui figlio sinistro è la radice del sottoalbero che contiene v

suc(u)

suc(v)

Page 19: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl19

delete(elem e)

Sia u il nodo contenente l’elemento e da cancellare:

1) u è una foglia: rimuovila

2) u ha un solo figlio:

Page 20: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl20

delete(elem e)3) u ha due figli: sostituiscilo con il predecessore (o

successore) (v) e rimuovi fisicamente il predecessore (o successore) (che ha un solo figlio)

Page 21: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl21

15

6 18

3 9 17 20

2 4 13

10

7

5

successore di u

u

v

4

delete (u)

Page 22: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl22

• Tutte le operazioni hanno costo O(h) dove h è l’altezza dell’albero

• O(n) nel caso peggiore (alberi molto sbilanciati e profondi)

Costo delle operazioni

Page 23: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl23

15

6 20

3 8 17 27

2 4 137 16 19 3022

…un albero binario di ricerca bilanciato…

h=O(log n)

Page 24: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl24

15

20

17

27

16

19

30

22

...

Ma anche questo è un BST

Notare: Tsearch(n) = O(h) in entrambi i casi

Però:

BST completo h = (log(n))BST “linearizzato” h = (n)2

Page 25: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl25

Alberi AVL

(Adel’son-Vel’skii e Landis)

Page 26: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl26

Definizioni

Alberi AVL = alberi binari di ricerca bilanciati in altezza

Un albero si dice bilanciato in altezza se ogni nodo v ha fattore di bilanciamento in valore assoluto ≤ 1

Fattore di bilanciamento di un nodo v = altezza del sottoalbero sinistro di v - altezza del sottoalbero destro di v

Page 27: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl27

Altezza di alberi AVL

Idea della dimostrazione: considerare, tra tutti gli AVL di altezza h, quelli con il minimo numero di nodi nh (alberi di Fibonacci)

Si può dimostrare che un albero AVL con n nodi ha altezza O(log n)

Intuizione: se gli alberi di Fibonacci hanno altezza O(log n), allora gli alberi AVL hanno altezza O(log n)

Page 28: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl28

…Alberi di Fibonacci per piccoli valori di altezza…

Ti: albero di Fibonacci di altezza i (albero AVL di altezza i con il minimo numero di nodi)

T0 T1 T2 T3 T4

Nota che: se a Ti tolgo un nodo, o diventa sbilanciato, o cambia la sua altezza

intravedete uno schema per generare l’i-esimo albero di Fibonacci a partire dai precedenti?

Inoltre: ogni nodo ha fattore di bilanciamento pari a 1

Page 29: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl29

T0 T1 T2 T3 T4

Lo schema

LemmaSia nh il numero di nodi di Th. Risulta nh=1+nh-1+nh-2=Fh+3-1dimper induzione su h

Page 30: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl30

CorollarioUn albero AVL con n nodi ha altezza h=O(log n)

dimnh =Fh+3 -1 = ( h)

corollario segue da n nh

Ricorda che vale:

Fk = ( k)

=1.618… sezione aurea

h=(log nh)

Page 31: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl31

Implementazione delle operazioni

• L’operazione search procede come in un BST

• Ma inserimenti e cancellazioni potrebbero sbilanciare l’albero

• Manteniamo il bilanciamento tramite opportune rotazioni

Page 32: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl32

Rotazione di base

• Mantiene la proprietà di ricerca• Richiede tempo O(1)

Page 33: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl33

Ribilanciamento tramite rotazioni

• Le rotazioni sono effettuate su nodi sbilanciati• Sia v un nodo con fattore di bilanciamento ≥ 2• Esiste un sottoalbero T di v che lo sbilancia• A seconda della posizione di T si hanno 4 casi:

• I quattro casi sono simmetrici a coppie

Page 34: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl34

Rotazione SS

• Applicare una rotazione semplice verso destra su v

• L’altezza dell’albero coinvolto nella rotazione passa da h+3 a h+2

+1

Page 35: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl35

Rotazione SD• Applicare due rotazioni semplici: una verso sinistra sul figlio del

nodo critico (nodo z), l’altra verso destra sul nodo critico (nodo v) • L’altezza dell’albero coinvolto nella rotazione passa da h+3 a h+2

Page 36: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl36

+1 0

…stesso caso, ma con fattore di bilanciamento di w diverso…

Page 37: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl37

insert(elem e, chiave k)

1. Crea un nuovo nodo u con elem=e e chiave=k

2. Inserisci u come in un BST

3. Ricalcola i fattori di bilanciamento dei nodi nel cammino dalla radice a u: sia v il più profondo nodo con fattore di bilanciamento pari a ±2 (nodo critico)

4. Esegui una rotazione opportuna su v

• Oss.: una sola rotazione è sufficiente, poiché l’altezza dell’albero coinvolto diminuisce di 1

Page 38: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl38

15

6 18

3 8 17 20

2 4 13

9

7

10

insert (10,e)

+1

-1 -1

-10-1

+10

0

00

0

0

25

0

+2

-2

-2

+2

-1

caso SD

Page 39: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl39

15

6 18

3 8 17 20

2 4 13

10

7

9

insert (10,e)

+1

-1 -1

-10-1

+10

0

00

0

0

25

0

+2

-2

-2

+2

-1

Page 40: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl40

15

6 18

3 8 17 20

2 4

13

107

9

insert (10,e)

+1

-1 -1

-10-1

+1

0

0

00 0

0

25

0

+2

-2

-2

+2

-1

0

Page 41: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl41

delete(elem e)

1. Cancella il nodo come in un BST2. Ricalcola i fattori di bilanciamento dei nodi

nel cammino dalla radice al padre del nodo eliminato fisicamente (che potrebbe essere il predecessore del nodo contenente e)

3. Ripercorrendo il cammino dal basso verso l’alto, esegui l’opportuna rotazione semplice o doppia sui nodi sbilanciati

• Oss.: potrebbero essere necessarie O(log n) rotazioni

Page 42: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl42

15

6 18

3 8 17 20

2 4 13

9

7

delete (18)

+1

-1 -1

-10-1

+10

0

00

0

25

0

successore di 18

20

+2

0caso SD

Page 43: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl43

15

6

3

8

17

2 4

13

97

delete (18)

+1

+1

-1

0

+1

+1

00

00

025

0

+2

0

20

Page 44: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl44

156

3

8

172 4

13

9

7

delete (18)

0+1

0

0

0

+100

000

25

0

20

Page 45: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl45

Cancellazione con rotazioni a cascata

Page 46: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl46

Classe AlberoAVL

Page 47: Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl47

• Tutte le operazioni hanno costo O(log n) poché l’altezza dell’albero è O(log n) e ciascuna rotazione richiede solo tempo costante

Costo delle operazioni