« poprzedni punkt   następny punkt »

Ćwiczenia do wykładu asd 08

       

  1. Zaproponuj algorytm wyliczania wag dla danego drzewa binarnego. Jaki jest koszt Tego algorytmu?
    (Wygodnie jest przyjąć, że  h(null) = -1 i zastosować jakiś algorytm rekurencyjnego przeglądania drzewa.)
     

  2. Dany jest ciąg uporządkowany rosnąco. Jaki jest koszt budowy wyważonego drzewa binarnych poszukiwań następującą metodą?
    (a) umieszczamy element środkowy ciągu w korzeniu budowanego drzewa, (b) lewe poddrzewo budujemy z elementów mniejszych od środkowego, a prawe poddrzewo z elementów większych od środkowego, stosując tę samą metodę.
     

  3. Dana są podzbiory A i B zbioru liczb rzeczywistych R, reprezentowane przez drzewa AVL, |A| = n i |B|=m. Napisać program znajdujący przecięcie zbiorów A i B w postaci drzewa AVL. Przeanalizuj koszt czasowy i pamięciowy zaproponowanego algorytmu.
     

  4. Podaj przykład  drzewa AVL, dla którego usunięcie jednego elementu spowoduje wykonanie rzędu lg n rotacji.
     

  5.  Napisz algorytm wyznaczania wysokości drzewa, którego każdy wierzchołek ma co najwyżej n synów. Oszacuj koszt tego algorytmu i uzasadnij jego poprawność.
     

  6. Zaproponuj algorytm rozwiązywania (a) problemu min-max  oraz (b) problemu wyszukiwania elementu k-tego co do wielkości z użyciem drzew AVL. Porównaj koszt znalezionych algorytmów z algorytmami poznanymi w wykładzie trzecim.

  7. Dane są dwa ciągi uporządkowane. Oszacuj koszt scalania tych ciągów, jeśli zastosowano następującą metodę: (a) dla dłuższego z ciągów zbudowano drzewo AVL (metodą z zdania 2),  (b) kolejno włożono do tego drzewa elementy drugiego ciągu, a następnie (c) odczytano wierzchołki otrzymanego drzewa w porządku inorder.

     

     

     

     

     

     

 
« poprzedni punkt   następny punkt »