Редактирование: Алгоритм Ахо-Корасик
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 75: | Строка 75: | ||
'''if''' v == root '''or''' v.parent == root | '''if''' v == root '''or''' v.parent == root | ||
v.suffLink = root | v.suffLink = root | ||
− | + | '''else''' | |
v.suffLink = getLink(getSuffLink(v.parent), v.charToParent) | v.suffLink = getLink(getSuffLink(v.parent), v.charToParent) | ||
'''return''' v.suffLink | '''return''' v.suffLink | ||
Строка 84: | Строка 84: | ||
'''if''' v.son[c] | '''if''' v.son[c] | ||
v.go[c] = v.son[c] | v.go[c] = v.son[c] | ||
− | + | '''else''' '''if''' v == root | |
v.go[c] = root | v.go[c] = root | ||
− | + | '''else''' | |
v.go[c] = getLink(getSuffLink(v), c) | v.go[c] = getLink(getSuffLink(v), c) | ||
'''return''' v.go[c] | '''return''' v.go[c] | ||
Строка 95: | Строка 95: | ||
'''if''' getSuffLink(v).isLeaf | '''if''' getSuffLink(v).isLeaf | ||
v.up = getSuffLink(v) | v.up = getSuffLink(v) | ||
− | + | '''else''' '''if''' getSuffLink(v) == root | |
v.up = root | v.up = root | ||
− | + | '''else''' | |
v.up = getUp(getSuffLink(v)) | v.up = getUp(getSuffLink(v)) | ||
'''return''' v.up | '''return''' v.up |