• Nie Znaleziono Wyników

Algorytmy i Struktury Danych, 9. ¢wiczenia

N/A
N/A
Protected

Academic year: 2021

Share "Algorytmy i Struktury Danych, 9. ¢wiczenia"

Copied!
2
0
0

Pełen tekst

(1)

Algorytmy i Struktury Danych, 9. ¢wiczenia

2008-12-08

1 Plan zaj¦¢

• usuwanie z B-drzew (wg Cormena)

• przykªad na wstawianie

• dalej wzbogacanie, w tym operacje na ci¡gach liczbowych z dodawaniem warto±ci do wszystkich elementów spójnego podci¡gu

B-drzewa denicja

• ka»dy w¦zeª ma nast¦puj¡ce pola n, c[], key[],

• ka»dy w¦zeª wewn¦trzny utrzymuje n kluczy i n+1 wska¹ników do synów,

• klucze s¡ uporz¡dkowane rosn¡co,

• klucz w poddrzewie c[i] maj¡ warto±ci pochodz¡ z przedziaªu [key[i − 1], key[i]](deniujemy key[0] = −∞, key[n + 1] = ∞),

• wszystkie li±cie maj¡ le»¡ na tej samej gª¦boko±ci,

• ka»dy w¦zeª zawiera nie wi¦cej ni» 2t − 1 kluczy,

• ka»dy w¦zeª oprócz korzenia zawiera co najmniej t − 1 kluczy.

B-drzewa wstawienia

TBD

B-drzewa usuwanie

• je±li klucz k jest w w¦¹le x i x jest li±ciem, to usu« k z w¦zªa,

• je±li klucz k jest w w¦¹le wewn¦trznym x, to:

 niech y1 syn x poprzedzaj¡cy k, y2 syn x wyst¦puj¡cy po k, k1 po- przednik k w drzewie, k2 nast¦pnik k w drzewie,

 je±li w¦zeª y1 ma co najmniej t kluczy, to rekurencyjnie usu« k1 i zast¡p k przez k1,

 w przeciwnym przypadku, je±li w¦zeª y2ma co najmniej t kluczy, to rekurencyjnie usu« k2i zast¡p k przez k2,

1

(2)

 w przeciwnym przypadku, y1i y2maj¡ po t − 1 kluczy, scal w¦zeª y1, klucz k i w¦zeª y2otrzymuj¡c w¦zeª y0, usu« rekurencyjnie k z w¦zªa y.

• je±li klucz k nie wyst¦puje w w¦¹le wewn¦trznym x, to:

 znajd¹ odpowiednie poddrzewo y w którym mo»e znajdowa¢ si¦ k,

 je±li y ma co najmniej t kluczy, usu« rekurencyjnie k z y,

 wpp., je±li y ma t − 1 kluczy, ale jeden z s¡siadów y ma t kluczy, to dodaj jeden klucz do y (jeden klucz przechodzi z x do y, jeden z brata y do x),

 wpp., scal y z dowolnym bratem i usu« k z tak utworzonego w¦zªa (je-

±li x jest korzeniem, to mo»e to spowodowa¢ zmniejszenie wysoko±ci drzewa).

2 Przej±cie z 2-3-4 drzew na czerwono-czarne

• w¦zeª z jednym kluczem zamieniany jest na czarny w¦zeª,

• w¦zeª z dwoma kluczami zamieniany jest na dwa w¦zªy czarny i jego czer- wonego syna (mo»emy dowolnie wybra¢ lewy czy prawy),

• w¦zeª z trzema kluczami jest zamieniany na czarny w¦zeª z dwoma czer- wonymi synami.

3 Drzewa czerwono-czarne

Cormen, Rozdziaª 13, strony 273301.

2

Cytaty

Powiązane dokumenty

Powiemy, że algorytm Alg działający w strukturze danych S jest całkowicie poprawny ze względu na specyfikację <wp,wk> wttw dla wszystkich danych w strukturze S

Problem Dany jest ciąg rosnący e[1],..,e[n] oraz element x pewnej przestrzeni liniowo uporządkowanej <E, >. Następnie porównujemy x z kolejnymi elementami ciągu

(3) Jeżeli tak otrzymane drzewo nie jest częściowo uporządkowane, to przechodząc wzdłuż drogi od liścia x do korzenia, poprawić etykiety zamieniając etykietę ojca z

takie drzewo <V, T> rozpinające grafu G, że suma kosztów jego krawędzi  eT c (e) jest najmniejsza.. Mirkowska, ASD_12 Algorytmy na

Niech będzie tekst 100000 znakowy, w którym występują tylko litery a,b,c,d,e,f i a-45tys razy, b-13tys., c-12tys.,.. d-16tys., e -

Powiemy, że problem jest rozstrzygalny, jeśli istnieje algorytm, który dla dowolnych danych x po skończonej liczbie kroków daje rozwiązanie problemu. W przeciwnym

Każde drzewo decyzyjne dla algorytmu sortującego ciąg n- elementowy przez porównywanie elementów, ma co najmniej wysokość log

Jeden z tych grafów zawiera mniej zªych kraw¦dzi (takich które powstaªy z M), dokªadniej zawiera co najwy»ej nβ/4 < nk/4 zªych kraw¦dzi.. Po t krokach znajdziemy skojarzenie w