Słownik
Przetransformuj program z poprzednich zajęć do postaci obiektowej. Rozbij zadanie na 3 obiekty:
- Dictionary - reprezentuje słownik. Odpowiednie metody pozwalają utworzyć słownik z danych pobranych z pliku tekstowego lub ze strumienia wejściowego.
- Tree - reprezentuje drzewo przechowujące wyrazy. Dostarcza metodę dodającą wyraz (napis) do kolekcji wstawiając go w porządku alfabetycznym.
- Node - reprezentuje pojedynczy węzeł drzewa.
Klasa Dictionary (slownik) zadeklarowana jest następująco:
class Dictionary { Tree t; string getword(istream &i); public: Dictionary(); Dictionary(const char *filename); void Read(istream &i); void Print(); ~Dictionary(){}; };
Klasa Tree (drzewo) zadeklarowana jest następująco:
class Tree { private: Node *root; Node *Add(Node *k,string word); void Free(Node *k); void Print(Node *k); public: Tree(); void Add(string word); void Print(); ~Tree(); };
Deklaracja struktury Node (element)
class Node { public: int count; string word; Node *left; Node *right; Node(); Node(string _word); void Print(); };
W klasie Node
wszystkie pola są publiczne. W tym przypadku jest to wygodne, jednak łamie zasadę hermetyzacji.
Spróbuj poprawić program tak aby pola tej klasy (zwłaszcza pola left
i right
) nie były publicznie dostępne.