Редактирование: Алгоритм Ахо-Корасик

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

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 70: Строка 70:
 
     '''vector<int>''' leafPatternNumber              <font color=green>// номера строк, за которые отвечает терминал</font>
 
     '''vector<int>''' leafPatternNumber              <font color=green>// номера строк, за которые отвечает терминал</font>
  
'''Функция для вычисления суффиксной ссылки:'''
+
'''Функция, для вычисления суффиксной ссылки:'''
 
  '''Node''' getSuffLink('''Node''' v):
 
  '''Node''' getSuffLink('''Node''' v):
 
     '''if''' v.suffLink == ''null''                      <font color=green>// если суффиксная ссылка ещё не вычислена</font>
 
     '''if''' v.suffLink == ''null''                      <font color=green>// если суффиксная ссылка ещё не вычислена</font>
Строка 79: Строка 79:
 
     '''return''' v.suffLink
 
     '''return''' v.suffLink
 
   
 
   
'''Функция для вычисления перехода:'''
+
'''Функция, для вычисления перехода:'''
 
  '''Node''' getLink('''Node''' v, '''char''' c):  
 
  '''Node''' getLink('''Node''' v, '''char''' c):  
 
     '''if''' v.go[c] == ''null''                          <font color=green>// если переход по символу c ещё не вычислен</font>
 
     '''if''' v.go[c] == ''null''                          <font color=green>// если переход по символу c ещё не вычислен</font>
Строка 90: Строка 90:
 
     '''return''' v.go[c]
 
     '''return''' v.go[c]
 
   
 
   
'''Функция для вычисления сжатой суффиксной ссылки:'''
+
'''Функция, для вычисления сжатой суффиксной ссылки:'''
 
  '''Node''' getUp('''Node''' v):
 
  '''Node''' getUp('''Node''' v):
 
     '''if''' v.up == ''null''                            <font color=green>// если сжатая суффиксная ссылка ещё не вычислена</font>
 
     '''if''' v.up == ''null''                            <font color=green>// если сжатая суффиксная ссылка ещё не вычислена</font>
Строка 101: Строка 101:
 
     '''return''' v.up
 
     '''return''' v.up
  
'''Функция для добавления строки в бор:'''
+
'''Функция, для добавление строки в бор:'''
 
  '''fun''' addString('''string''' s, '''int''' patternNumber):
 
  '''fun''' addString('''string''' s, '''int''' patternNumber):
 
     '''Node''' cur = root
 
     '''Node''' cur = root
Строка 117: Строка 117:
 
     cur.isLeaf = ''true''
 
     cur.isLeaf = ''true''
 
     cur.leafPatternNumber.pushBack(patternNumber)
 
     cur.leafPatternNumber.pushBack(patternNumber)
'''Функция для процессинга текста (поиск, встречается строка или нет):'''
+
'''Функция, для процессинга текста (поиск, встречается строка или нет):'''
 
  '''fun''' processText('''string''' t):   
 
  '''fun''' processText('''string''' t):   
 
     '''Node''' cur = root
 
     '''Node''' cur = root

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: