Třída sufixového automatu.
...
#include <white_box_code.h>
|
| | SuffixAutomaton () |
| | Konstruktor nového prázdného objektu sufixového automatu. ...
|
| |
| | SuffixAutomaton (const std::string &seq) |
| | Konstruktor nového objektu sufixového automatu. ...
|
| |
| void | add_element (char elem) |
| | Přidání prvku do automatu. ...
|
| |
| void | add_sequence (const std::string &seq) |
| | Přidání sekvence elementů do automatu. ...
|
| |
| bool | step (const size_t state_index, const char &elem, size_t &next_state) const |
| | Krok z daného stavu pomocí prvku. ...
|
| |
| const std::unordered_map< char, size_t > & | next (const size_t state_index) const |
| | Získání elementů, ze kterých je možný přechod z daného stavu. ...
|
| |
| bool | contains (const std::string &seq) const |
| | Kontrola, zda automat obsahuje danou sekvenci. ...
|
| |
| std::vector< size_t > | topological_sort () const |
| | Získání topologického uspořádání stavů Složitost: O(n), kde n je počet stavů v automatu. ...
|
| |
| std::string | longest_direct_continuation (const size_t state_index) const |
| | Získání nejdelšího přímého pokračování z daného stavu Nejdelší přímé pokračování je definováno jako sekvence přechodů ze stavů mající právě jeden odchozí přechod, počínaje daným stavem. ...
|
| |
| size_t | size () const |
| | Získání počtu stavů v automatu. ...
|
| |
| void | clear () |
| | Vyčištění automatu. ...
|
| |
| const State & | get_state (size_t index) const |
| | Získání stavu na daném indexu. ...
|
| |
Třída sufixového automatu.
◆ SuffixAutomaton() [1/2]
| SuffixAutomaton::SuffixAutomaton |
( |
| ) |
|
Konstruktor nového prázdného objektu sufixového automatu.
◆ SuffixAutomaton() [2/2]
| SuffixAutomaton::SuffixAutomaton |
( |
const std::string & |
seq | ) |
|
|
inline |
Konstruktor nového objektu sufixového automatu.
- Parametry
-
| seq[in] | Počáteční sekvence pro vytvoření automatu |
◆ add_element()
| void SuffixAutomaton::add_element |
( |
char |
elem | ) |
|
Přidání prvku do automatu.
- Parametry
-
◆ add_sequence()
| void SuffixAutomaton::add_sequence |
( |
const std::string & |
seq | ) |
|
Přidání sekvence elementů do automatu.
- Parametry
-
| seq[in] | Sekvence k přidání |
◆ clear()
| void SuffixAutomaton::clear |
( |
| ) |
|
◆ contains()
| bool SuffixAutomaton::contains |
( |
const std::string & |
seq | ) |
const |
Kontrola, zda automat obsahuje danou sekvenci.
- Parametry
-
| seq[in] | Sekvence ke kontrole |
- Návratová hodnota
- true Pokud je sekvence obsažena v automatu
◆ get_state()
| const State & SuffixAutomaton::get_state |
( |
size_t |
index | ) |
const |
Získání stavu na daném indexu.
- Parametry
-
- Návratová hodnota
- const State& Stav na daném indexu
- Výjimky
-
| std::out_of_range | Pokud je index mimo rozsah |
◆ longest_direct_continuation()
| std::string SuffixAutomaton::longest_direct_continuation |
( |
const size_t |
state_index | ) |
const |
Získání nejdelšího přímého pokračování z daného stavu Nejdelší přímé pokračování je definováno jako sekvence přechodů ze stavů mající právě jeden odchozí přechod, počínaje daným stavem.
- Parametry
-
| state_index[in] | Index stavu |
- Návratová hodnota
- std::string Nejdelší přímé pokračování - sekvence elementů
◆ next()
| const std::unordered_map< char, size_t > & SuffixAutomaton::next |
( |
const size_t |
state_index | ) |
const |
Získání elementů, ze kterých je možný přechod z daného stavu.
- Parametry
-
| state_index[in] | Index stavu |
- Návratová hodnota
- Mapa přechodů z daného stavu, kde klíčem je prvek a hodnotou index následujícího stavu
- Výjimky
-
| std::out_of_range | Pokud je state_index mimo rozsah |
◆ size()
| size_t SuffixAutomaton::size |
( |
| ) |
const |
Získání počtu stavů v automatu.
- Návratová hodnota
- size_t Počet stavů
◆ step()
| bool SuffixAutomaton::step |
( |
const size_t |
state_index, |
|
|
const char & |
elem, |
|
|
size_t & |
next_state |
|
) |
| const |
Krok z daného stavu pomocí prvku.
- Parametry
-
| state_index[in] | Index stavu |
| elem[in] | Prvek pro přechod |
| next_state[out] | Index následujícího stavu, pokud přechod existuje, jinak nedefinováno |
- Návratová hodnota
- true Pokud přechod existuje
- Výjimky
-
| std::out_of_range | Pokud je state_index mimo rozsah |
◆ topological_sort()
| std::vector< size_t > SuffixAutomaton::topological_sort |
( |
| ) |
const |
Získání topologického uspořádání stavů Složitost: O(n), kde n je počet stavů v automatu.
- Návratová hodnota
- std::vector<size_t> Topologické uspořádání indexů stavů
Dokumentace pro tuto třídu byla generována z následujících souborů: