Języki i Paradygmaty Programowania I, laboratorium 05 Zadanie 1

Transkrypt

Języki i Paradygmaty Programowania I, laboratorium 05 Zadanie 1
Języki i Paradygmaty Programowania I, laboratorium 05
[!!] Wszystkie programy powinny być napisane w języku C++.
Zadanie 1 (na 3.0). Książka telefoniczna. Stwórz listę jednokierunkową przechowującą listę
kontaktów. Każdy z wpisów powinien zawierać:
• Identyfikator (liczba całkowita),
• Imię,
• Nazwisko,
• Numer telefonu (liczba całkowita).
Lista kontaktów powinna być wczytywana z pliku. Lista powinna składać się z klasy List
zawierającej (prywatny) wskaźnik na pierwszy element listy i (publiczne) metody do dodania
nowego elementu na koniec, wypisania zawartości listy oraz zwolnienia pamięci.
Wczytaj kontakty z pliku i wypisz je wszystkie na ekran. Wypisywanie podczas wczytywania jest
zabronione.
Zadanie 2 (na 3.5). Do listy z zadania 3 dodaj metodę (np. caller) wyszukującą kontakt po
numerze telefonu, wypisującą na ekran imię i nazwisko znalezionego kontaktu. Przykładowo, jeśli
“Klaus Baudelaire” ma numer 1999, po wywołaniu metody z argumentem 1999 wypisane powinno
zostać “Dzwoni Klaus Baudelaire”. Jeśli numer nie zostanie znaleziony w liście, wypisane powinno
zostać “Dzwoni Nieznajomy”. Zaprezentuj działanie programu.
Zadanie 3 (na 5.0). Zrób klasę drzewa binarnego (BST) przechowującą listę kontaktów. Kontakty
zawierają te same dane, co w zadaniu 1. i powinny być wczytane z tego samego pliku. Jako klucz
użyj numer telefonu (umożliwi to szybsze wyszukiwanie danych o dzwoniącym niż przy użyciu
listy).
Dodaj do drzewa metodę z zadania 2. (wyszukiwanie kontaktu po numerze telefonu).
W metodach wyszukujących usuń wypisywanie tekstu (“Dzwoni ...”) i porównaj szybkość ich
działania:
http://en.wikipedia.org/wiki/Binary_search_tree