• Non ci sono risultati.

2Corrispondenzaconglialberi2-3-4 1Alberored-black Alberired-black AzzoliniRiccardo2019-05-13

N/A
N/A
Protected

Academic year: 2021

Condividi "2Corrispondenzaconglialberi2-3-4 1Alberored-black Alberired-black AzzoliniRiccardo2019-05-13"

Copied!
6
0
0
Mostra di più ( pagine)

Testo completo

(1)

Azzolini Riccardo 2019-05-13

Alberi red-black

1 Albero red-black

Un albero red-black (RB) è un albero binario di ricerca in cui:

• ogni nodo contiene (oltre a un valore) un campo colore (rosso/nero), il quale indica il colore del lato che collega il nodo al padre;

• non ci sono due lati rossi consecutivi (cioè il cammino da un qualunque nodo a un suo nipote ha almeno un lato nero);

• ogni cammino dalla radice a una foglia ha lo stesso numero di lati neri (ma le foglie non sono necessariamente tutte allo stesso livello).

2 Corrispondenza con gli alberi 2-3-4

Per implementare gli alberi 2-3-4 si potrebbe rappresentare ciascun nodo mediante un record dotato di 3 campi per i valori e 4 riferimenti per i figli. Così facendo, però, si avrebbe uno spreco di spazio per tutti non saturi.

Gli alberi red-black sono invece un’implementazione efficiente per gli alberi 2-3-4: siccome ogni nodo contiene esattamente un valore, si evitano gli sprechi.

In un albero red-black, più nodi collegati da lati rossi corrispondono a un unico nodo di un albero 2-3-4:

(2)

A

1 2

Tipo 2 A

1 2

2-3-4 Red-black

A B

1 2 3

Tipo 3 A

1 B

2 3

B

A 1 2

3 oppure

A B C

1 2 3 4

Tipo 4 B

A 1 2

C 3 4

2.1 Altezza

Lemma: Sia T un albero 2-3-4 di altezza h. Allora, ogni albero RB equivalente a T ha al massimo altezza 2h.

Dimostrazione: Per attraversare il corrispondente di un nodo 2-3-4 in un albero RB servono al massimo due lati, quindi l’altezza può al massimo raddoppiare passando da un albero 2-3-4 a un albero RB equivalente.

Osservazione: Segue dal lemma che un albero RB con n valori ha altezza Θ(log n), quindi gli alberi red-black sono bilanciati.

2.2 Alberi red-black equivalenti

A un particolare albero red-black corrisponde un unico albero 2-3-4.

Viceversa, a un dato albero 2-3-4 corrispondono più alberi RB, perché esistono due

(3)

3 Inserimento

L’inserimento di un valore in un albero red-black si effettua come in un BST, ma in più:

1. si scompongono eventuali nodi saturi (cioè aventi entrambi i figli collegati da lati rossi) durante la discesa, come per gli alberi 2-3-4;

2. se, dopo l’inserimento, si hanno due lati rossi consecutivi, si eseguono delle rotazioni per ridisporre i nodi in modo da eliminare la situazione illegale.

3.1 Scomposizione

La scomposizione di un nodo saturo si effettua invertendo i colori di 3 lati (quelli che collegano il nodo al padre e ai due figli) e, se necessario, applicando delle rotazioni per evitare che ci siano due lati rossi consecutivi.

• Se il nodo saturo è figlio di un nodo di tipo 2 (o è la radice), la scomposizione è immediata:

A 1 B C D

2 3 4 5

A

1 C

B 1 2

D 3 4

A

1 C

B 2 3

D 4 5 A C

1 B

2 3

D

4 5

−→

• Se, invece, il nodo saturo è figlio di un nodo di tipo 3, la procedura di scomposizione dipende da come è orientato il padre, cioè da qual è il lato rosso:

(4)

A B 1 2 C D E

3 4 5 6

B A 1 2

D C 3 4

E 5 6

B A 1 2

D C 2 3

E 4 5 A B D

1 2 C

3 4 E

5 6

−→

D E A B C 1 2 3 4

5 6

E D B A 1 2

C 3 4

5

6

E D B A 1 2

C 3 4

5

6

RDX D

B A 1 2

C 3 4

E 5 6 B D E A

1 2 C 3 4

5 6

−→ −→

(5)

A E 1 B C D

2 3 4 5 6

E A

1 C

B 2 3

D 4 5

6

E A

1 C

B 2 3

D 4 5

6

RSX

E C A 1 B

2 3 D 4 5

6

RDX C

A

1 B

2 3 E D 4 5

6 A C E

1 B

2 3 D 2 3

6

−→ −→ −→

• Infine, il nodo saturo non può essere figlio di un nodo di tipo 4, cioè di un altro nodo saturo, dato che quest’ultimo sarebbe già stato scomposto.

3.2 Complessità

Il costo della scomposizione di un nodo saturo è O(1), perché si effettuano al massimo 3 cambiamenti di colore e 2 rotazioni, tutte operazioni a costo costante.

Di conseguenza, la complessità in tempo dell’inserimento è Θ(log n) in ogni caso.

4 Cancellazione

Per la cancellazione, si applica agli alberi red-black la stessa strategia usata per gli alberi 2-3-4:

1. si cerca il nodo da cancellare;

2. se esso non è una foglia, si cerca un sostituto;

3. si rimuove il valore/sostituto e si ribilancia l’albero.

La complessità in tempo è sempre Θ(log n).

(6)

5 Gestione di valori uguali

Nei BST, per poter gestire valori uguali è sufficiente determinare se inserirli sempre nel sottoalbero sinistro o in quello destro.

A

x≤ A x > A

A

x < A x≥ A oppure

Negli alberi 2-3-4 e RB, invece, i valori uguali devono essere consentiti in tutti i sottoal- beri, per via dell’operazione di scomposizione.

A B C

x≤ A A≤ x ≤ B B ≤ x ≤ C x > C

Ad esempio, se si costruisce un albero 2-3-4 dalla sequenza 1, 1, 1, 1, con il quarto inserimento si creano due sottoalberi contenenti valori uguali a quello del padre:

1 1 1

1

1 1 1

−→

Un altro problema è che la cancellazione diventa ambigua, perché non è ovvio quale dei valori uguali eliminare. Bisogna quindi scegliere in modo coerente.

In pratica, per questi motivi si tende a utilizzare una porzione univoca dei dati come chiave, in modo da garantire che tutti i valori inseriti siano diversi.

Riferimenti

Documenti correlati

– Fienagione: essiccamento del foraggio fino ad una umidità del 16% circa, grazie all’azione della radiazione solare.. •

Attivare iniziative finalizzate alla realizzazione di sinergie con i competenti Enti territoriali per il completamento dei processi di adeguamento e di sviluppo delle

Partecipazione alle attività di analisi SI Fornire il supporto tecnico per il documento di.

Un albero binario si dice degenere se ha n nodi e altezza n −1, cioè se ogni nodo interno ha un solo figlio. Osservazioni: Per

Un arco che attraversa un taglio si dice leggero se ha peso pari al minimo tra i pesi di tutti gli archi che attraversano tale taglio..

essere minimo possiamo asserire che la tipologia di rete soluzione del nostro problema dovrà essere priva di cicli, dovrà contenere tutti i vertici del grafo ed inoltre la somma

Lavagna / LIM I tipi di alberi n-ari e binari 2 Lezione Frontale Lavagna / LIM Libro di testo Alberi Binari di Ricerca (BST) 3 Lezione Frontale.. Esercitazioni alla lavagna e

35 Now at National Research Nuclear University ‘Moscow Engineering Physics Institute’ (MEPhI), Moscow, Russia. 36 Also at Institute of Nuclear Physics of the Uzbekistan Academy

Il peso vale P=5000kg e la portata massima vale Q=2500 N in condizione di marcia lenta (con il rapporto di trasmissione più piccolo) e su superficie piana

Supponiamo che, dopo tutti i passagi dei paragrafi precedenti, siamo ar- rivati ad avere i seguenti oggetti: per ciascuna delle probabilit`a incognite P (B), P (A|B) e P (A|B c

costruire un albero binario di ricerca Marco Lapegna – Laboratorio di Programmazione 2 Cenni agli alberi. procedura ricerca(in: radice, e;

una quercia. A  su per il tronco di  si stava arrampicando  tutto sudato e sporco da  scuola, 

The group has won numerous awards in national and international competitions of design ranging from the scale of the architectural object and building renovation, urban and

Previous prototype: LANS (Linear Actuator for NeuroSurgery). a) Master module and LANS controller. b) Slave module and Neuromate arm at the Neurosurgical Department, University

We offer here some examples of PS-InSAR based analysis of displacement time series relative to deep-seated landslides and we discuss the advantages and the possible add-ons offered

(Polo Uni- versitario “Città di Prato”) – University of Florence. Within the project, the first activity of the action-research described in this paper was to define the

Parametri Dentatura Tipo denti: diritti. Angolo di

o Scegliere Chiudi dal menu File oppure fare clic su nella barra del titolo oppure fare clic col tasto destro del mouse sul nome del programma sulla barra delle applicazioni e

[r]

[r]

[r]

Sembravano tutti aspettare qualcosa e visto che tutti erano tranquilli Il cerbiatto pensò che fosse normale per gli esseri umani avere gli alberi dentro casa!. Così pensando

 Figli destro e sinistro di un nodo: nodi puntati dai link di quel nodo (padre)..  Sottoalbero destro e sinistro di