l8(3)

background image

Algorytmy i Struktury Danych

Lista 8

B-DRZEWA

Zadanie 1.

Z własności B-drzew wiemy, że:

• każdy węzeł różny od korzenia musi mieć co najmniej t-1 kluczy, stąd minimalna ilość synów takiego

węzła jest równa t;

• każdy węzeł może zawierać co najwyżej 2t-1 kluczy, stąd maksymalna ilość synów takiego węzła

jest równa 2t.

Dopuszczając sytuacje, gdy t=1 mamy w każdym węźle [0,1] kluczy oraz [1,2] synów. Powstałe drzewo
byłoby podobne do drzew binarnych, które nie są optymalne dla obsługi urządzeń dyskowych.

Zadanie 3.

W każdym węźle mamy dla minimalnego stopnia t, maksymalnie 2t-1 kluczy. Stąd:

h

X

i=0

(2t − 1) · (2t)

i

Rozwijając tę sumę otrzymujemy:

h

X

i=0

(2t − 1) · (2t)

i

= (2t − 1) + (2t − 1)(2t) + ... + (2t − 1)(2t)

h−1

+ (2t − 1)(2t)

h

=

= 2t − 1 + 4t

2

− 2t + ... + 2

h

t

h

− 2

h−1

t

h−1

+ 2

h+1

t

h+1

− 2

h

t

h

= (2t)

h+1

− 1

Łatwo widać stąd, że wszystkie środkowe wyrazy się skracają.

Zadanie 4.

Drzewo czerwono-czarne jest zrównoważonym drzewem binarnym o wysokości O(lg n). Po

wchłonięciu przez czarne węzły ich czerwonych dzieci powstanie B-drzewo o minimalnym stopniu t=2
tzw. 2-3-4 drzewo. Przy założeniu, że drzewo czerwono-czarne jest pełnym drzewem binarnym oraz jest
pokolorowane poziomami na przemian otrzymamy pełne B-drzewo o minimalnym stopniu t=2.

Zadanie 7.

Wywołujemy poniższą procedure z parametrem root[T], który domyślnie jest już wczytany.

1

B−Tree−Min ( x )

2

r=x

3

i f

l e a f [ r ]

4

t h e n

r e t u r n key_1 [ r ]

5

e l s e

6

Disk−Read [ c_1 [ r ] ]

7

r e t u r n B−Tree−Min ( c_1 [ r ] )

Zadanie 8.

W tym zadaniu użyjemy gotowego rozwiązania B-Tree-Search.

1

B−Tree−P r e d e c e s s o r (T ,

x )

2

( r ,

i ) = B−Tree−S e a r c h ( r o o t [ T ] ,

x )

3

i f

i >= 2

4

t h e n

r e t u r n

( r ,

i −1)

5

e l s e

6

( p ,

j ) = AN−P r e d e c e s s o r ( r o o t [ T ] ,

x )

7

i f

l e a f [ r ]

and

j =1

8

t h e n

r e t u r n NIL

9

e l s e

10

r e t u r n

( p ,

j −1)

1

AN−P r e d e c e s s o r ( k ,

x )

2

r = k

3

i f

key_1 [ r ] = x

4

t h e n Disk−Read ( c_1 [ r ] )

5

r e t u r n

( c_1 [ r ] ,

n [ c_1 [ r ] ] + 1 )

6

e l s e

7

w h i l e

i <= n [ r ]+1

8

Disk−Read ( c_i [ r ] )

9

i f

key_1 [ c_i [ r ] ] = x

10

t h e n

r e t u r n

( r ,

i )

11

e l s e

12

w h i l e

i <= n [ r ]

and x > key_i [ r ]

13

i=i +1

14

r e t u r n AN−P r e d e c e s s o r ( c_i [ r ] ,

x )

1


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron