V tomto úkolu převedete strukturu trie
z
minulého úkolu na plnohodnotný objekt s metodami
a konstruktory. Též přidáte 2 nové metody,
search_by_prefix
– Bere řetězec a vrací všechna slova v trii, pro která je toto slovo prefix
get_prefixes
– Bere řetězec a vrací všechny prefixy tohoto slova v trii
a novou třídu, word_cursor
, která uživateli umožní číst slova z trie zpátky.
Stáhněte si potřebné hlavičkové soubory a testy.
Jeden nebo více souborů .cpp
, které implementují funkce deklarované v
souboru trie.hpp
tak, aby testy procházely a neztrácela se paměť. Při práci
na úkolu soubor trie.hpp
neměňte; nemusíte ho ani odevzdávat.
Nezapomeňte, že při definování funkce, která je deklarována uvnitř třídy, k ní musíte referovat pomocí jména třídy.
class foo { void say_hello(); }; void foo::say_hello() { std::cout << "hello\n"; }
Pro tento úkol žádné hlavičky ze standardní knihovny nedoporučujeme.
word_cursor
, ale pokud si ji dobře rozmyslíte, není to s ní tak zlé.