[назад] up. зарезал все рассказы, про организацию узлов в суфф. деревьях, оставил только дополнение.

Алгоритм Укконена на ассемблере (суффиксное дерево)

Библиотека для построения суффиксных деревьев. Не сочтите меня маньяком, всё сделано ради любопыства. я, так сказать, ставил свои глупые эксперементы.
p.s. табуляция в исходниках =4 символа.

[V-0.1] - версия номер 0.1 (masm32). Узлы сделаны ввиде списков. Но уже работает быстрее чем тот же исходник на Си в релизной компиляции посредством шестой студии. Над оптимизацией пока так же сильно не напрягался, да и нету сейчас нормлаьных отладчиков под рукой.

[V-0.2] - версия номер 0.2. Довольно приличный расход памяти, но более высокая скорость. Снаружи структуры дерева выглядят так же как раньше. Поиск образца в дереве, взят из старой версии, хотя можно намного быстрее. Выделяя память, можно не отводить разные страницы под разные виды структур, а валить всё в одну кучу. Это сильно упростит код, но как скажется на скорости, особенно в будущем - я не пока знаю.

[v-0.2.1] - версия переделана под FASM (если подменить функции выделения памяти на malloc free, то можно пользоваться под Linux-сом). Длина данных определяется числом, а не нулевым символом. Написан более быстрый поиск.

[v-0.2.2] - версия для множества образцов. Лишние переходы немного сократили работу программы, но вместе с тем её удалось чуть-чуть ускорить, поэтому разница не заметна. Поиск снова ускорен. В данный момент надо подумать, смогу ли я сделать строки которые увеличиваются в перемешку (одно решение у меня есть, но оно не проверенно на деле). А ещё лучше создать дерево, параллельно скользящее по множеству образцов.

Возможные планы

Если сильно не надоест, то можно сделать следующие вещи (сделать не сложно):
Hosted by uCoz