Изменения

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

Сжатое суффиксное дерево

64 байта добавлено, 03:42, 17 мая 2011
Нет описания правки
Пусть дана строка <tex>s</tex>, <tex>|s| = n</tex>. Суффиксное дерево (сжатое суффиксное дерево) <tex>T</tex> для строки <tex>s</tex> - ориентированное дерево с корнем, имеющее ровно <tex>n</tex> листьев, занумерованных от <tex>1</tex> до <tex>n</tex>. Каждая внутренняя вершина, отличная от корня, имеет не меньше двух детей, а каждая дуга помечена непустой подстрокой строки <tex>s</tex>. Никакие две дуги, выходящие из одной и той же вершины, не могут иметь пометок, начинающихся с одного и того же символа. Суффиксное дерево содержит все суффиксы строки <tex>s</tex>: для каждого листа <tex>i</tex> конкатенация меток дуг на пути от корня к листу <tex>i</tex> в точности составляет суффикс, который начинается в позиции <tex>i</tex>, то есть <tex>s[i..n]</tex>.
}}
 
==Существование сжатого суффиксного дерева==
[[Файл:Suffix_tree_3.png|thumb|right|Суффиксное дерево для строки <tex>xabxa</tex> с защитным символом]]
==Связь с суффиксным бором==
Пусть <tex>P</tex> - [[Суффиксный бор|суффиксный бор]] строки <tex>s</tex>. Тогда сжатое суффиксное дерево <tex>T</tex> может быть получено из <tex>P</tex> слиянием каждого пути из неветвящихся вершин в одну дугу.
 
==Количество внутренних вершин==
 
==Хранение в памяти==
В суффиксном дереве количество разветвлений не более количества листьев, поэтому для его хранения требуется <tex>O(n|\Sigma|)</tex> памяти.
 
==Использование==
Суффиксное дерево позволяет за линейное время найти:
* Наибольшую общую подстроку двух строк
* [[Суффиксный массив| Суффиксный массив]] и массив <tex>lcp</tex> (longest common prefix)
 
==Источники==
Дэн Гасфилд - Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология - СПб.: Невский Диалект; БХВ-Петербург, 2003. — 654 с: ил.
70
правок

Навигация