• Non ci sono risultati.

AVL Tree

N/A
N/A
Protected

Academic year: 2021

Condividi "AVL Tree"

Copied!
11
0
0

Testo completo

(1)

AVL Tree

(2)

Alberi binari di ricerca degeneri

• Le operazioni sugli alberi binari di ricerca hanno costo (ℎ)

• ℎ dovrebbe essere tipicamente pari a log , ma una sequenza sfavorevole di inserimenti può generare una situazione degenere in cui ℎ =

1

2

3

4

5

(3)

Alberi binari di ricerca auto-bilanciati

• La probabilità che, dati = 2 nodi, un albero binario di ricerca sia completo e pieno è molto piccola

‣ Sono poche le permutazioni degli inserimenti che generano un albero completamente bilanciato

• Soluzione: una struttura dati adattativa che “reagisce” allo sbilanciamento riorganizzando la sua struttura interna

‣ Gli alberi auto-bilanciati mescolano i nodi

precedentemente inseriti, senza violare la proprietà

dell'albero binario di ricerca

(4)

AVL Tree

• Gli alberi AVL (Adelson-Velskii and Landis) sono degli alberi auto-bilanciati in cui, per ogni nodo interno v, la differenza di altezza tra i figli destro e sinistro di v può essere al più 1

3

1 7

2 5

6 4

8

4

2

1

3

2 2

1 1

(5)

AVL Tree

• Quale di questi è un albero AVL?

(6)

Inserimenti ed eliminazioni

• L'inserimento e l'eliminazione avvengono secongo gli

algoritmi

TREE

I

NSERT

() e

TREE

D

ELETE

() propri degli alberi binari di ricerca

• Come nel caso degli alberi RB, questo inserimento può portare ad una violazione della condizione di bilanciamento

‣ Negli alberi RB: il numero di nodi neri in ogni percorso radice/foglia è lo stesso

‣ Negli alberi AVL: la differenza di altezza dei due figli è al più 1

• Azione correttiva: ribilanciamento, per ripristinare la condizione

(7)

Operazione fondamentale: la rotazione

• Le operazioni di “rotazione” sono operazioni locali che

conservano la proprietà fondamentale degli alberi binari di ricerca

• Le rotazioni coinvolgono una coppia di nodi e tutti i loro sottoalberi destro e sinistro

y RIGHTROTATE(T,y) x

(8)

Quale parte dell'albero ribilanciare?

• Nel caso di violazione dopo un inserimento:

‣ Solo i nodi nel percorso foglia-radice coinvolto

nell'inserimento possono osservare una violazione della condizione di bilanciamento

‣ Si ribilancia il nodo più profondo in cui si osserva uno sbilanciamento (l'intero albero viene così ribilanciato)

• Quattro casi di sbilanciamento da gestire (nel nodo più profondo k):

1. Inserimento nel sottoalbero sx del figlio sx di k

2. Inserimento nel sottoalbero dx del figlio sx di k

3. Inserimento nel sottoalbero sx del figlio dx di k

4. Inserimento nel sottoalbero dx del figlio dx di k

(9)

Che rotazione effettuare?

• I casi 1 e 4 sono equivalenti (simmetrici)

• I casi 2 e 3 sono equivalenti (simmetrici)

• Caso 1: rotazione singola

(10)

Che rotazione effettuare?

• I casi 1 e 4 sono equivalenti (simmetrici)

• I casi 2 e 3 sono equivalenti (simmetrici)

• Caso 2: rotazione doppia (la prima rotazione riduce i casi 2/3

ai casi 1/4)

(11)

Un esempio in pratica

Riferimenti

Documenti correlati

• Si associa ad ogni nodo una lista semplice, realizzata mediante

‣ Dato qualsisi nodo, tutti i percorsi verso le foglie contengono lo stesso numero di nodi neri..

– Al più il ricalcolo riguarderà un cammino dal padre del nodo eliminato fino alla radice, quindi ha costo O(log n). ● Per ogni nodo con fattore di bilanciamento ±2, occorre

Come vedremo, costruiremo la definizione di un albero, libero o orientato, a partire dalla definizione di grafo.. Nello studio degli alberi il corrispettivo del vertice è

[r]

ascolta ora i consigli dei tuoi genitori e grazie ad essi sarai una persona stimata. La città di Torino fu sede del governo italiano. Grandi sono il nome e la gloria del

Tra le figure coinvolte nella tutela della salute e della sicurezza dei lavoratori rientra anche il Rappresentante dei lavoratori per la sicurezza, figura

Sui trattori standard, da più di 30 anni la struttura di protezione montata al posto di guida è di sicurezza, nel senso che è provata di sicurezza e omologata per offrire