Zaprojektować strukturę danych (dowolną) służącą do przechowywania rozłącznych, domkniętych przedziałów. Program powinien udostępniać następujące funkcje:
a. Dodawanie przedziału do bazy - program informuje, ze dodał przedział, lub że nie mógł tego zrobić, bo podany przedział kolidował z pozostałymi.
b. Znajdowanie przedziału zawierającego dany punkt - podanie koców przedziału, lub informacji, że dany punkt nie należy do żadnego z nich.
c. Usuwanie przedziałów z bazy.
d. Realizacja punktów a. i b. w oczekiwanym (średnim) czasie krótszym, niż czas, jakiego można oczekiwać po liście dowiązaniowej. (Czyli czas aproksymacyjny rzędu mniejszego niż O(n), ewentualnie czas O(n) z bardzo zmniejszonym współczynnikiem) Przykład działania
- wprowadz(2,5) -ok
- wprowadz(0,1) -ok
- wprowadz(3,4) -nie można, kolizja
- znajdz(4) - liczba 4 jest w przedziale [2,5]
- znajdz(6) - liczby 6 nie ma w przedziałach
Realizacja punktów a. i b. - 3 pkt.
Realizacja punktów a. i b. oraz co najmniej jednego z pozostałych - 5 pkt.
Realizacja całości (elegancka) 6pkt.