Дерево палиндромов
Дерево палиндромов — структура данных, позволяющая решить некоторые интересные задачи на палиндромы.
Эту структуру данных придумал Михаил Рубинчик и рассказал ее на летних сборах в Петрозаводске в 2014 году.
Описание структуры
Дерево палиндромов состоит из вершин. Каждая вершина соответствует палиндрому. Через будем обозначать строку, которой соответствует вершина .
Ребра дерева палиндромов ориентированные и помечены символами. Ребро с символом из вершины в вершину означает, что В данном примере мы получаем палиндром aba добавлением символа a к обоим сторонам палиндрома b
Также в дереве палиндромов присутствуют суффиксные ссылки. Суффиксная ссылка из вершины ведет в вершину , если является наибольшим суффиксом строки . Мы добавили суффиксную ссылку (пунктирная линия) из aba к a потому, что a является наибольшим паллиндромом-суффиксом строки aba
Название структуры данных, по видимому, выбрано неудачно, т.к.