2. Klasówka 2022/23 (12.01.2023)#
Zadanie 1 [2 punkty]#
Podaj największe takie d, że każde AVL-drzewo o wysokości
Podpowiedź
odpowiedzią jest 0, odpowiedzią jest 1, odpowiedzią jest k,
Drzewo o najmniejszej pełnej głębokości jest skrajnie przechylone w jedną stronę, np.
T(1) to korzeń tylko z jednym liściem (lewym synem)
T(h) to drzewo w którym lewe poddrzewo korzenia to T(h-1) a prawe poddrzewo to T(h-2)
Zadanie 2 [6 punktów]#
Zaprojektuj strukturę danych, która na początkowo pustym, dynamicznym zbiorze S dodatnich liczb całkowitych, pozwala wydajnie wykonywać następujące operacje:
INI()::
(wykonywana tylko raz, na samym początku)INSERT(n)::
DELETE(n)::
SEARCH(n):: sprawdź, czy n jest w zbiorze S
MAX():: jeśli S jest niepusty, to podaj największą liczbę w zbiorze S
INCREASE(i):: jeśli S jest niepusty dodaj MAX() do i najmniejszych elementów w zbiorze,
Podpowiedź
Wzbogacamy drzewo zrównoważone o dodatkowe atrybuty:
size: rozmiar podrzewa
max: maksymalna wartość w poddrzewie
add: wartość którą należy dodać do wszystkich elementów w poddrzewie
Po uwzględniu wartości klucza i atrybutów add na ścieżce od węzła do korzenia, drzewo zachowuje własności BST. Aby uprościć operacje INSERT/DELETE, za każdym razem gdy przechodzimy po wężle w którym add jest różna od 0, stosujemy ją do klucza i przepychamy do poddrzew. Operację INCREASE możemy zaimplementować przez kombinację operacj SPLIT, aktualizacji add w korzeniu i JOIN.
Zadanie 3 [12 punktów]#
Grafem klikowym nazywamy spójny, nieskierowany graf, w którym każda dwuspójna wierzchołkowo składowa jest kliką (grafem pełnym).
[2 punkty] Jaka jest maksymalna, a jaka minimalna wysokość DFS-drzewa w 2023- wierzchołkowym grafie klikowym, zawierającego dokładnie 3 dwuspójne składowe.
[10 punktów] Dla liczby całkowitej
i liczby całkowitej k, , rozważmy n-wierzchołkowy graf klikowy G o zbiorze wierzchołków , w którym dwuspójne składowe ponumerowano . Zwartą reprezentacją grafu G, oznaczaną przez Z(G), nazywamy zbiór wszystkich par takich, że v jest wierzchołkiem grafu, natomiast jest numerem dwuspójnej składowej, do której należy wierzchołek v.[2 punkty] Jaki jest rozmiar zbioru Z(G)?
[2 punkty] Uzasadnij, że wysokość DFS-drzewa budowanego algorytmem rekurencyjnym na grafie zadanym przez listy sąsiedztwa zależy od kolejności wierzchołków na listach.
[6 punktów] Dana jest zwarta reprezentacja Z(G) grafu G. Zaproponuj wydajny algorytm, który wyznaczy DFS-numerację wierzchołków grafu (numerujemy wierzchołki w kolejności pierwszych odwiedzin) przy przeszukiwaniu od wierzchołka o numerze 1 i przy założeniu, że listy sąsiedztwa grafu G byłyby uporządkowane rosnąco.
Podpowiedź
TBD
Uwaga: uzasadnij poprawność swoich odpowiedzi i dokonaj analizy złożoności obliczeniowej zaproponowanych algorytmów.