Kalendarz
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 (tylko takich, które w niej wcześniej były).
d. Wypisywanie przedziałów zapamiętanych.
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 -usuń(3,5) - nie było takiego przedziału
-usuń(2,5) -usunięto
- wprowadz(3,4) -ok
-stan bazy -[0,1], [3,4]
Za każdy punkt 1 pkt.
Elegancka realizacja całości (w postaci kalendarza) – 5pkt.
Rezerwacje lotów (haszowanie z łańcuchowym rozwiązywaniem kolizji)
Napisać program umożliwiający obsługę rezerwacji biletów lotniczych na loty z jednego dnia (5 lotów).
Liczba pasażerów jednego lotu jest ograniczona do 10.
Program wyświetla listę pasażerów wskazanego lotu oraz listę lotów zarezerwowanych na tę samą osobę.
Możliwe jest odwołanie rezerwacji.
Elegancka realizacja całości– 6pkt.