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