Lista zadań na zajęcia, semestr letni 2013/2014, zestaw IV Drzewo

Transkrypt

Lista zadań na zajęcia, semestr letni 2013/2014, zestaw IV Drzewo
Lista zadań na zajęcia, semestr letni 2013/2014, zestaw IV
Drzewo poszukiwań binarnych
Przemysław Krysztowiak, [email protected]
Zadanie 1. Zbuduj drzewo poszukiwań binarnych dla tablicy [15, 5, 6, 9, 3, 5, 7]:
(a) stosując poniższy algorytm dla kolejnych elementów,
(b) wysokości 2.
Zadanie 2. Zilustruj wstawianie elementu 12 do każdego z tych drzew, a następnie szukanie elementu 7.
Zadanie 3. Omów złożoność czasową budowy drzewa, wstawiania nowego elementu i wyszukiwania
danego elementu.
Zadanie 4. Zaimplementuj wstawianie klucza do drzewa poszukiwań binarnych (struktura węzła przechowuje klucz i wskaźniki na węzły-potomki; struktura drzewa przechowuje wskaźnik na węzeł-korzeń).
Pseudokod za [T. Cormen et al., Introduction to algorithms] (x, y są wskaźnikami na węzły).
TREE-INSERT(T, v)
y := NULL;
x := T .root;
while x ! = NULL do
y := x;
if v < x.key then
x := x.left;
else x := x.right;
z := INIT-NODE(v);
if y = NULL then
T .root := z;
else
if v < y.key then
y.left := z;
else y.right := z;
Zadanie 5. Zaimplementuj wypisywanie drzewa binarnego metodą inorder.
Zadanie domowe
1. Zilustruj przebieg algorytmu budowy drzewa poszukiwań binarnych na pierwszym zestawie swoich
danych z moodle-a (dodawanie kolejno każdego elementu).
2. Napisz pseudokody przeszukiwana drzewa binarnego metodami preorder oraz postorder. Przedstaw
wyniki wypisania drzewa otrzymanego w zadaniu 1 tymi metodami.
3. Wykonaj implementację usuwania elementu z drzewa w taki sposób, że węzeł w drzewie pozostaje,
ale dodatkowy atrybut usuwanego węzła o nazwie „widoczny” ustawiamy na false. Popraw implementację
wypisywania inorder tak, by nie wypisywała niewidocznych węzłów.
Wyrażam zgodę na drukowanie przez studentów i pracowników WMiI UMK treści zawartej w niniejszym pliku.

Podobne dokumenty