Warning
This page is located in archive. Go to the latest version of this course pages.

Trie 2

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.

Co odevzdat?

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.

Rady

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";
}

Užitečné hlavičky

Pro tento úkol žádné hlavičky ze standardní knihovny nedoporučujeme.

Implementační rady

  • Pravděpodobně vám k převodu bude stačit z metod třídy volat nezměněné funkce z minulého úkolu.
  • 90 % složitosti tohoto úkolu se schovává ve struktuře word_cursor, ale pokud si ji dobře rozmyslíte, není to s ní tak zlé.
  • V inicializačním seznamu lze zavolat jiný konstruktor třídy.
courses/b6b36pjc/ukoly/trie_2.txt · Last modified: 2017/10/24 09:37 by horenmar