3622
правки
Изменения
→Построение из суффиксного массива
<code>
Node addNextSuffix(Node previous, '''int''' length, '''int''' lcp):
'''if''' previous.depth == 0 '''or''' previous.depth == lcp: <font color=green> // Добавляем к сыновьям текущей вершины </font>
added = Node(previous, length)
previous.children.push(added)
'''return''' added
'''else:'''
'''if''' previous.parent.depth < lcp: <font color=green> // Нужно разрезать ребро </font>
inserted = Node(prevous.parent, lcp)
root = Node('''null''', 0)
previous = root
'''for''' i = 1 '''to''' length:
previous = addNextSuffix(previous, length - suf[i], lcp[i])
'''return''' root