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.