libstree
provide? libstree
is a generic suffix tree implementation, written
in C. It can handle arbitrary data structures as elements of a string. It is
therefore not limited to simple ASCII character strings, like most demo implementations
of suffix algorithms are.
Suffix tree generation in libstree
is highly efficient and implemented using
the algorithm by Ukkonen, which means that
libstree
builds suffix trees in time linear to the length of the strings
(assuming that string element comparisons can be done in O(1)).
libstree
can handle multiple strings per suffix tree, including dynamic insertion
and removal of strings. It provides various means of obtaining information about
nodes in the tree, such as depth-first and breadth-first iteration, leaves iteration,
and bottom-up iteration.
libstree
provides implementations of longest-common-substring and longest-repeated-substring
algorithms, as examples of how to build complex algorithms using the suffix tree
primitives.