Documente Academic
Documente Profesional
Documente Cultură
Cautare
Inserare
Stergere
Lista
liniara
Tablouri
O(n)
O(1)
O(n)
Liste inlantuite
O(n)
O(1)
O(1)
Tablouri
O(log n)
O(n)
O(n)
Liste inlantuite
O(n)
O(n)
O(1)
Lista
liniara
ordonata
<
valoarea din v
<
valorile memorate in subarborele la dreapta lui v
echivalent: parcurgerea inordine listeaza elementele crescator
operatii
cautare
inserare
stergere
20
0
40
30
10
30
elimina(50)
40
30
50
insereaza(32)
20
50
20
40
40
40
30
20
40
50
insereaza(35)
20
elimina(0)
20
30
30
35
35
32
Arbori AVL
un arbore binar de cautare t este un arbore AVL-echilibrat daca
pentru orice virf v,
h(vstg) - h(vdrp) 1
Lema
t AVL-echilibrat t echilibrat (i.e., h(t) = (log n)).
Arbori AVL
Teorema
Clasa arborilor AVL-echilibrati este O(log n) stabila.
algoritmul de inserare
nodurile au memorate si factorii de echilibrare ( {-1,
0, 1})
se memoreaza drumul de la radacina la nodul adaugat
intr-o stiva (O(log n))
se parcurge drumul memorat in stiva in sens invers si
se actualizeaza factorii de echilibrare; nodurile
dezichilibrate se reechilibeaza cu una dintre operatiile:
rotatie stinga/dreapta simpla/dubla (O(log n)).
Rotatii
Rotatie dreapta simpla
y
x
y
x
A
B
z
x
D
A
B
x
A
2-3-arbori: definitie
orice nod intern v are 2 copii (este de aritate 2) sau 3 copii
(este de aritate 3)
valStg
valStg valMij
p->stg
p->mij
subarbore subarbore
stanga
mijlociu
p->drp
subarbore
dreapta
2-3-arbori : definitie
pentru orice nod v de aritate 2, valorile memorate in
subarborele stinga < vvalStg < valorile memorate in
subarborele mijlociu
valStg
x < valStg
valStg < y
2-3-arbori : definitie
pentru orice nod v de aritate 3, valorile memorate in subarborele
stinga < vvalStg < valorile memorate in subarborele
mijlociu < vvalMijl < valorile memorate in subarborele
dreapta
valStg valMij
x< valStg
valStg<
y<
valMij
valMij<z
2-3-arbori : definitie
toate nodurile de pe frontiera au acelasi nivel
h
h
cautare in 2-3-arbore
function poz23Arb(t, a)
begin
p t
while (p != NULL) do
switch(cmp(a, p))
a < p->stg: p p->stg; break;
p->stg < a < p->mij: p p->mij; break;
p->drp < a: p p->mij; break;
otherwise: return p;
return p
end
inserare in 2-3-arbore
35
30; 60
10; 20
40; 50
80;
100;
70;
90;
110; 120
80;
30; 60
40
10; 20
35;
50;
100;
70;
90;
110; 120
35;
60;
50;
70;
100;
90;
110; 120
40; 80
30;
10; 20
35;
60;
50;
70;
100;
90;
110; 120
stergere 2-3-arbore
daca elementul sters nu se afla intr-un de pe frontiera, atunci se
poate interschimba cu un vecin aflat pe frontiera
vecinul cu care face interschimbarea se poate face ca la
arborii binari de cautare
asa ca putem considera numai cazul cand elementul care se
sterge se afla pe frontiera
stergere 2-3-arbore
40; 80
30;
10; 20
35;
60;
50;
70;
100;
90;
110; 120
40; 80
30;
10; 20
35;
100;
50; 60
90;
110; 120
combina
30;
10; 20
35;
100;
90;
50; 60
110; 120
80;
100;
30; 40
10; 20
35;
50; 60
90;
110; 120
30; 40
50; 80
60;
100;
40; 80
30;
50;
100;
stergere 2-3-arbore
modifica p
atat timp cat p are zero elemente && p nu e radacina
fie r radacina lui p
fie q fratele lui p (stg. sau drp. dupa caz)
daca q este de aritate 3
atunci roteste
altfel combina
r devine p
Exercitiu: Sa se scrie procedura de stergere
Teorema
Clasa 2-3-arborilor este O(log n)-stabila.
2-3-4-arbori
sunt generalizari ale 2-3 arborilor
un nod intern poate avea 2, 3 sau 4 copii
un nod cu 4 copiii va memora 3 chei
se mentin proprietatile de arbore de cautare si aceeasi
inaltime pentru toate nodurile de pe frontiera
ca si in cazul celorlalti abori de cautare, exista doua moduri de
implementare:
elementele multimii memorate in nodurile interne (si frunze)
elementele multimii doar in nodurile frunza (pe frontiera)
inserarea se face tot prin spargerea nodurilor
la momentul inserarii si propagarea spre radacina
sau in timpul cautarii, fiecare nod plin este spart in doua
Arbori bicolori
un arbore bicolor este caracterizat de urmatoarele proprietati:
sint arbori binari de cautare in care nodurile pendante
(coresp. intervalelor) fac parte din structura
fiecare nod este colorat cu negru sau rosu
toate nodurile de pe frontiera sint negre
daca un nod este rosu atunci ambii fii ai acelui nod sint
negri
pentru orice nod v, toate drumurile simple care pleaca din
acel nod si se opresc intr-un nod de pe frontiera, au acelasi
numar de noduri negre
100
40
20
60
50
110
80
90
noduri interne.
Teorema
Inaltimea unui arbore bicolor este cel mult 2log(n + 1).
Teorema
Arborii bicolori sint echilibrati.
11
14
2
1
7
5
x
unchiul lui x
4
recolorare
15
11
2
unchiul lui x
14
7
5
y
15
4
roteste stanga
11
7
x
unchiul lui x
14
15
5
4
roteste dreapta
11
14
15
4
recoloreaza
11
14
15
Discrepanta SSr
A
B
unchiul lui C
C
A
B
x
unchiul lui C
C
Daca bunicul e radacina, devine negru
Discrepanta SDr
A
B
unchiul lui C
D
C
A
unchiul lui C
D
C
Daca bunicul e radacina, devine negru
Discrepanta SSn
A
unchiul lui C
C
B
B
C
A
D
A
D
Discrepanta SDn
A
unchiul lui C
D
C
C
C
B
A
D
A
D
copiii lui B
B
A
copiii lui B
B
C
copiii lui B
B
C
copiii lui B
B
A
B
C
nepotii lui B
B
C
C
D
nepotii lui B
B
C
C
D
nepotii lui B