ASD Ćwiczenia 8

Z Studia Informatyczne
Wersja z dnia 11:58, 23 sie 2006 autorstwa Amal (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zadanie 1 Udowodnij, że wysokość drzewa AVL jest logarytmiczna względem jego rozmiaru.

Rozwiązanie Pokażemy, że drzewo AVL o wysokości h musi mieć rozmiar wykładniczy względem h, konstruując drzewo AVL Th o wysokości h i najmniejszym możliwym rozmiarze. Jego definicja jest rekurencyjna:

              • rysunek drzewa Fibonacciego ************************

Oznaczmy rozmiar drzewa Th przez ah. Mamy a0=1, a1=2, ah+1=ah+ah1+1 dla h>0. Porównując kilka pierwszych wyrazów tego ciągu z początkowymi wyrazami ciągu Fibonacciego Fh zgadujemy, że ah=Fh+31 (co łatwo sprawdzić przez indukcję) - dlatego Th noszą nazwę drzew Fibonacciego. Mamy zatem ah=Θ(ϕh).

Zadanie 2 Oblicz, ile jest różnych drzew Fibonacciego o wysokości h.

Rozwiązanie Jeśli szukaną wielkość oznaczymy przez bh, to z faktu, że niższe poddrzewo może być zarówno lewe jak i prawe, wynika równanie rekurencyjne: b0=1, b1=2, bh+1=2bhbh1. Podstawiając ch=lgbh, mamy c0=0, c1=1, ch+1=ch+ch1+1. Zgadujemy, a następnie sprawdzamy przez indukcję, że ch=Fh+21, zatem bh=2Fh+21.


Zadanie 3 Napisz pseudokod operacji Insert i Delete w drzewach AVL.

Rozwiązanie .................

Zadanie 4 Udowodnij Lemat 1.

Rozwiązanie ..................

Zadanie Opisane tu operacje Insert i Delete dla B-drzew są dwuprzebiegowe: najpierw schodzimy od korzenia do liścia, a następnie wracamy w górę drzewa przywracając warunki równowagi. Zaprojektuj wymagające z grubsza o połowę odwołań do dysku mniej jednoprzebiegowe algorytmy wstawiania i usuwania kluczy z B-drzewa, w których przywracanie równowagi odbywa się od razu podczas marszu w dół drzewa.

Rozwiązanie Podstawowy pomysł polega na zadbaniu o to, by przy wstawianiu ojciec aktualnego węzła nigdy nie był całkowicie wypełniony, a przy usuwaniu - miał przynajmniej o jeden klucz więcej niż dozwolone minimum. Szczegóły można znaleźć w książce [CLRS], podrozdz. 18.2 i 18.3.