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.