Изменения

Перейти к: навигация, поиск

Алгоритм Ахо-Корасик

8 байт добавлено, 16:00, 21 мая 2016
Пример реализации
'''Node*''' up <font color=green>// сжатая суффиксная ссылка</font>
'''char''' charToParent <font color=green>// символ, ведущий к родителю</font>
'''bool''' leaf isLeaf <font color=green>// флаг, является ли вершина терминалом</font>
'''vector <int>''' leafPatternNumber <font color=green>// номера строк, за которые отвечает терминал</font>
'''Node*''' getUp('''Node*''' v):
'''if''' '''not'''(v->up) <font color=green>// если сжатая суффиксная ссылка ещё не вычислена</font>
'''if''' getSuffLink(v)->leafisLeaf
v->up = getSuffLink(v)
'''else''' '''if''' getSuffLink(v) == root
cur->son[c]->parent = cur
cur->son[c]->charToParent = c
cur->son[c]->leaf isLeaf = ''false''
cur = cur->son[c]
cur->leaf isLeaf = ''true''
cur->leafPatternNumber.push_back(patternNumber)
'''Функция, для процессинга текста (поиск, встречается строка или нет):'''
Анонимный участник

Навигация