Documente Academic
Documente Profesional
Documente Cultură
1. Definire : Arbore binar de cutare indexat arbore binar de cutare fiecare nod are nc un cmp LeftSize n care se va reine numrul de descendeni din subarborele stng struct nod { nod *st, dr; int val, LeftSize; }
7 4
10
20
3
40
1
6
0
15
1 0
18
30
0
2 8
1 0
0
25
0
35
3. Indexul unui element este poziia sa la traversarea n inordine a arborelui binar de cutare. Pentru arborele din imagine: [2, 6, 7, 8, 10, 15, 18, 20, 25, 30, 35, 40] index(2) = 0 index(15) = 5 index(20) = 7 LeftSize(x) = index(x), relativ la elementele din subarborele stng cu rdcina n nodul x .
4. Cutarea unui element de index nr n arborele binar de cutare S presupunem c indexarea ncepe cu elementul aflat pe poziia 0 (ca n exemplu). Atunci, pentru prelucrarea nodului x, avem cazurile : dac nr=x.LeftSize atunci elementul cutat are valoarea x.val dac nr<x.LeftSize atunci elementul cutat este n subarborele stng al lui x, pe poziia nr (deci apelm recursiv cutarea pentru x.st) dac nr>x.LeftSize atunci elementul cutat se afl n subarborele drept al lui x i este pe poziia (nr - x.LeftSize-1) n acest subarbore Exemplu: nr=9
7 4
10
20
9>7
3
40
1
6
0
15
1 0
18
30
0
2 8
1 0
0
25
0
35
7 4
10
20
3
40
1
6
0
15
1 0
18
30
9-7-1=1<3
0
2 8
1 0
0
25
0
35
7 4
10
20
3
40
1
6
0
15
1=1
30
0
2 8
1 0
0
18
0
25
0
35