Я только что закончил реализацию суффиксного дерева на Java. В моей записи в блоге вы можете узнать больше о суффиксных деревьях, посмотреть, как использовать мою библиотеку, а также скачать и собрать библиотеку, используя Subversion и Maven. Да, он длиннее нескольких строк в одном файле класса, но он хорошо документирован и создан для практического использования в реальном мире. Кроме того, он использует подход Укконена для построения линейного времени. (Большинство реализаций, отмеченных здесь, имеют как минимум O (n ^ 2) время выполнения.)