Zadanie 1:
Zaprogramuj klasę Lista<T> implementującą metody dodawania i usuwania elementów z początku i końca listy, oraz metodę sprawdzania jej niepustości. Istotne jest, aby elementy listy nie były obiektami klasy Lista, lecz elementami innej klasy, której polami są: pole zawierające wartość typu T, oraz odnośniki do innych elementów listy. Przyjmij taką implementację klasy Lista, aby działała ona efektywnie zarówno gdy jest wykorzystywana jako kolejka, jak i stos, tj. aby operacje dodawania i usuwania elementów na początek i koniec działały w czasie stałym.
Przykład: klik
Zadanie 2:
Zaimplementuj klasę Słownik<K,V> przechowującąpary elementów, gdzie pierwszym elementem pary jest klucz, a drugim wartość. Klasa powinna implementować metodę dodawania, wyszukiwania i usuwania elementu wskazywanego przez klucz. Przyjmij, że pary są przechowywane jako elementy drzewa binarnych poszukiwań tak, aby możliwe było szybkie odszukanie klucza. Parametrami klasy są typ klucza i typ wartości.
Przykład: klik