1. Zaprojektuj funkcje Abstrakcyjnego Typu Danych (ATD) o nazwie Max, który:
o Zawsze wstawia liczbę przed równa liczbą, jeśli ta jest już w ciągu. W przeciwnym wypadku wstawia ja na początku ciągu.
o Usuwa dany element- jeśli jest więcej tych elementów, usuwa wszystkie równe zadanej wartości
o Wyszukuje zadany element.
1.1. Należy zdefiniować typ Max definiując typ struktury zawierającej wszystkie dane niezbędne do realizacji definiowanego ATD za pomocą listy wiązanej
jednokierunkowej lub dwukierunkowej oraz nag³ówki funkcji wraz z ich specyfikacja wg zadanego wzoru:
void Nazwa funkcji(parametry funkcji);
{ działanie:
warunki wstępne:
warunki końcowe: }
1.2. Należy podać definicje wybranej funkcji z p.1.1. zakładając, że będzie ona działać na liście wiązanej (lista jednokierunkowa lub dwukierunkowa). Należy użyć języka C/C+ do zdefiniowania kodu funkcji.
2. Podaj przebieg algorytmu DFS lub BFS dla zadanego grafu. Policz liczbę operacji wykonanych na węzłach, dotyczących ustawiania koloru węzła oraz badania koloru węzła.
3. Podaj przebieg algorytmu Floyda dla zadanego grafu. Następnie podaj ścieżkę prowadzącą od wybranego węzła początkowego do wybranego węzła końcowego, wyznaczona w
algorytmie (numery węzłów będą podane wraz grafem).
4. Podaj przebieg algorytmu Prima lub Dijkstry dla zadanego grafu. Policz liczbę operacji wykonanych na węzłach grafu związanych z odwiedzaniem i przebudową kolejki priorytetowej (zbudowanej jako kopiec) po wyznaczeniu nowego klucza oraz po usunięciu węzła.