Académique Documents
Professionnel Documents
Culture Documents
Ianuarie, 2014
Cont inut
Arbori bicolori
Arbori splay
Treaps
Structuri de date
Curs 11
Ianuarie, 2014
2 / 32
Symmetric binary B-tree, Bayer 1972 Echilibrarea este ment inut a cu ajutorul unei color ari a nodurilor Arborii ro su-negru sunt arbori binari de c autare care satisfac urm atoarele propriet a ti:
1. 2. 3. 4. un nod are culoarea ro su sau negru r ad acina si nodurile frunz a (nil ) sunt colorate cu negru dac a un nod este ro su, atunci ii s ai sunt negri drumurile de la un nod la nodurile de pe frontier a au acela si num ar de noduri negre
Structuri de date
Curs 11
Ianuarie, 2014
3 / 32
Structuri de date
Curs 11
Ianuarie, 2014
4 / 32
Arbori bicolori
Teorem a: Un arbore bicolor cu n noduri interne are n alt imea h 2log2 (n + 1) Demonstrat ie:
Orice subarbore al unui arbore bicolor are cel put in 2bh(v ) 1 noduri interne, unde:
v r ad acina subarborelui, bh(v ) num arul de noduri negre aate pe un drum de la v la un nod de pe frontier a
Structuri de date
Curs 11
Ianuarie, 2014
5 / 32
Operat ii
Corolar: Operat iile de c autare, min, max, succesor, predecesor au complexitatea timp O (lgn), ntr-un arbore bicolor cu n noduri. Operat iile de inserare si stergere modic a arborele ro su-negru.
Structuri de date
Curs 11
Ianuarie, 2014
6 / 32
Operat ia de inserare
se caut a pozit ia si se insereaz a valoarea similar operat iei de inserare de la arbori binari de c autare se coloreaz a nodul cu ro su se restaureaz a propriet a tile (prin recolorare de noduri si aplicare de rotat ii simple)
Structuri de date
Curs 11
Ianuarie, 2014
7 / 32
Operat ia de inserare
Proprietatea 1: satisf acut a Proprietatea 2 satisf acut a (ambii i ai nodului inserat sunt nil ) dac a nodul este r ad acina recolorare Proprietatea 4 satisf acut a (noul nod ro su nlocuie ste o frunz a) Poate violata proprietatea 3 - dac a p arintele nodului este ro su
muta mai sus aceasta situatie prin recolorarea nodurilor pana cand poate xata prin operatii de rotat ie si recolorare
Structuri de date
Curs 11
Ianuarie, 2014
8 / 32
Structuri de date
Curs 11
Ianuarie, 2014
10 / 32
Structuri de date
Curs 11
Ianuarie, 2014
11 / 32
Structuri de date
Curs 11
Ianuarie, 2014
12 / 32
Structuri de date
Curs 11
Ianuarie, 2014
13 / 32
Structuri de date
Curs 11
Ianuarie, 2014
14 / 32
Arbori bicolori
Algoritmul de stergere: similar algoritmului de stergere de la arbori binari de c autare; se realizeaz a n plus recolor ari si rotat ii pentru restabilirea propriet a tilor Complexitatea algoritmului de inserare/ stergere: O (logn) Utiliz ari: system symbol tables
Java: TreeMap, TreeSet; C++ STL: map, multimap, multiset
kernel Linux
Structuri de date
Curs 11
Ianuarie, 2014
15 / 32
Cont inut
Arbori bicolori
Arbori splay
Treaps
Structuri de date
Curs 11
Ianuarie, 2014
16 / 32
Nu utilizeaz a spat iu de memorie suplimentar Mut a valorile accesate frecvent sus ( n r ad acin a) Cost amortizat pentru operat ii: O (logn) Costul pentru o singur a operat ie, n cazul cel mai nefavorabil: (n)
Structuri de date
Curs 11
Ianuarie, 2014
17 / 32
Arbori Splay
Structuri de date
Curs 11
Ianuarie, 2014
18 / 32
Structuri de date
Curs 11
Ianuarie, 2014
19 / 32
Structuri de date
Curs 11
Ianuarie, 2014
20 / 32
Structuri de date
Curs 11
Ianuarie, 2014
21 / 32
Arbori splay
Operat iile de c autare/inserare/ stergere utilizeaz a operat ia splay cauta(t , k ): apeleaz a splay (t , k ); dac a k este r ad acina, atunci ntoarce k , altfel false insereaza(t , k ): insereaz a noua valoare ca n cazul arborilor binari de c autare, apoi apeleaz a splay (t , k ); sterge (t , k ): utilizeaz a metoda de stergere de la arbori binari de c autare, apoi apleleaz a operat ia splay pentru p arintele nodului sters Complexitatea medie a unei operat ii: O (logn), consider and o secvent a de operat ii (presupunem c a pornim cu un arbore vid, n este dimensiunea maxim a a arborelui)
Structuri de date Curs 11 Ianuarie, 2014 22 / 32
Arbori Splay
Implement arile mai rapide utilizeaz a versiunea top-down splay trees Utiliz ari: Windows NT (memorie virtual a, ret ea), compilatorul gcc, libr aria GNU C++, implementarea funct iei Unix malloc, etc.
Structuri de date
Curs 11
Ianuarie, 2014
23 / 32
Cont inut
Arbori bicolori
Arbori splay
Treaps
Structuri de date
Curs 11
Ianuarie, 2014
24 / 32
Treaps
Seidel and Aragon, 1996 Arborii binari de c autare se comport a bine pe valori aleatoare, si nu la fel de bine pe cele particulare Treaps : structuri de date aleatoare
n loc s a permut am valorile aleator (nu putem!), permut am structura de date
Structuri de date
Curs 11
Ianuarie, 2014
25 / 32
Treaps
Structuri de date
Curs 11
Ianuarie, 2014
26 / 32
Treaps
Prin parcurgerea n inordine a arborelui vom obt ine cheile sortate Prioritatea ec arui nod este mai mare dec at a ilor Cheile si priorit a tile asociate determin a n mod unic forma unui treap
treap -ul este arborele binar obt inut prin inserarea cheilor n ordine descresc atoare a priorit a tilor
Ad ancimea medie a steptat a a oric arui nod este O (logn) Rotat iile st anga/dreapta simple p astreaz a invariantul arborilor de c autare si invariantul heap
Structuri de date
Curs 11
Ianuarie, 2014
27 / 32
Operat ia de inserare
Alege pentru prioritate o valoare aleatoare Insereaz a ca ntr-un arbore binar de c autare Aplic a rotat ii p an a se restabile ste ordinea heap
Complexitate: O (logn)
Structuri de date Curs 11 Ianuarie, 2014 28 / 32
Operat ia de stergere
Inversul operat iei de inserare Se aduce nodul n pozit ia unei frunze pentru a sters, utiliz and rotat ii
se alege ul cu prioritatea mai mic a si se rote ste
Complexitate: O (logn)
Structuri de date
Curs 11
Ianuarie, 2014
29 / 32
Alte operat ii
split : se mparte arborele n doi arbori treap, unul care s a cont in a cheile mai mici dec at o cheie dat a key , si cel alalt care s a cont in a cheile mai mari
se insereaz a un nod ajut ator x cu cheia key si prioritatea -innit dup a inserare, x va r ad acina arborelui (subarborii st ang si drept vor arborii c autat i) sterge x complexitate: O (logn)
join: se unesc doi arbori treap, unul care cont ine chei mai mici dec at o cheie dat a key , si cel alalt care cont ine chei mai mari
se creeaz a un arbore cu r ad acina key si prioritate aleatoare, care cont ine cei doi subarbori se sterge r ad acina complexitate: O (logn)
Structuri de date
Curs 11
Ianuarie, 2014
30 / 32
Cont inut
Arbori bicolori
Arbori splay
Treaps
Structuri de date
Curs 11
Ianuarie, 2014
31 / 32
2-3-4 arbori
ecare nod intern este de aritate 2, 3 sau 4