Редактирование: Суффиксный автомат

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

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

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 95: Строка 95:
  
 
==Реализация==
 
==Реализация==
В приведённой ниже реализации используются следующие переменные:
+
* Переходы хранятся в массиве отображений (ключ {{---}} символ, значение {{---}} номер состояния) <tex>\mathrm{edges}</tex>,
* <tex>\mathrm{edges[]}</tex> {{---}} массив отображений (ключ {{---}} символ, значение {{---}} номер состояния) с переходами,
+
* Суффиксные ссылки хранятся в массиве <tex>\mathrm{link}</tex>,  
* <tex>\mathrm{link[]}</tex> {{---}} массив суффиксных ссылок,  
+
* Длины строк хранятся в массиве <tex>\mathrm{len}</tex>,
* <tex>\mathrm{len[]}</tex> {{---}} массив длин строк,
+
* Функция <tex>\mathrm{newState}</tex> создаёт новое состояние и возвращает его номер,
* <tex>\mathrm{newState()}</tex> {{---}} функция, которая создаёт новое состояние и возвращает его номер,
+
* Функция <tex>\mathrm{clone}</tex> копирует состояние и возвращает номер нового состояния.
* <tex>\mathrm{clone()}</tex> {{---}} функция, которая копирует состояние и возвращает номер нового состояния,
 
* <tex>\mathrm{last}</tex> {{---}} последнее состояние.
 
  
 
  '''func''' addChar(c ''': char''')''':'''
 
  '''func''' addChar(c ''': char''')''':'''

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

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

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