Documente Academic
Documente Profesional
Documente Cultură
Proprietati
De ce sa folosim Arborele
Rosu Negru ?
Asa cum stim la Arbori Binari de Cautare
urmatoarele operatii se realizeaza in
O(inaltimea arborelui):
* Cautarea
* Predecesor, Succesor
* Aflarea Maximului, Minimului
* Inserarea
* Stergere
Inserarea
Intr-un Arbore Rosu-Negru cu N noduri,
Inserarea se realizeaza intr-un timp O(lgN)
Functia Insereaza de la Arborele Binar de
Cautare nu ne granteaza pastrarea
proprietatiilor arborelui Rosu-Negru
Vom pastra proprietatiile prin rotatii si
recolorari
Pornim de la arborele
Stergerea
Intr-un Arbore Rosu-Negru cu N noduri,
Stergerea se realizeaza intr-un timp
O(lgN)
Functia de Stergere de la Arborele Binar
de Cautare nu ne granteaza pastrarea
proprietatiilor arborelui Rosu-Negru
Vom pastra proprietatiile prin rotatii si
recolorari
Ce este o santinela?
Santinela este un obiect cu aceleasi
campuri ca si un nod, cu culoarea neagra
Toti pointerii la Nil din arbore vor fi inlocuiti
cu pointeri catre santinela
Vom folosi o singura santinela, astfel cand
dorim sa manipulam un fiu al unui nod x,
vom seta in prealabil parinte[Nil[T]]=x
Exemplu de santinela
Observatii
Nodul x transmis procedurii este unicul fiu
al lui y (nodul sters) daca x!=Nil, sau
santinela daca y nu a avut fii
Daca nodul sters a fost rosu proprietatiile
sunt conservate
Cazul 1
Cazul 1
Apare atunci cand w, fratele lui x (x fiind fiul
nodului succesor in preordine) este colorat
cu rosu
W trebuie sa aibe fii negri
Vom interschimba culorile lui w si p[x]
Vom roti la stanga lui p[x]
Noul frate al lui x, unul din fii lui w va fi
clorat cu negru
Cazul 1 => Cazul 2, 3 sau 4
Cazul 1
Cazul 2
Cazul 2
Apare atunci cand w este colorat cu negru
si fii lui sunt colorati cu negru
Va trebui sa scoatem un negru de la w si
de la x
X va ramane cu un singur negru
W va deveni rosu
X se va duce in parintele lui
Culoarea lui x se va face neagra si se
repteta ciclul daca e nevoie
Cazul 2
Cazul 3
Cazul 3
Apare cand w este colorat cu negru, fiul lui
stang este rosu si fiul drept este negru
Interschimbam culorile lui w si ale fiului sau
stang
Efectuam o rotatie la dreapta in w
Noul frate w a lui x este acum un nod negru
care are fiul drept colorat cu rosu
X va trece in parintele lui
Am transformat cazul 3 in cazul 3 sau 4
Cazul 3
Cazul 4
Cazul 4
Apare atunci cand w este negru si fiul drept al lui
este rosu
Culoarea lui w va deveni culoarea bunicului lui
Culoarea bunicului va deveni neagra
Culoarea fiului lui drept al lui w va deveni neagra
Se roteste la stanga tatal lui x
X va deveni radacina arborelui care va primi
culoarea neagra
Cazul 4
Aplicatii
In aplicatii in care timpul de raspuns
trebuie sa fie mic
Sunt stucturi de date folosite in geometrie
computationala