libstree Manual
Prev | Introduction | Next

# What does `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.

Prev | Home | Next
Introduction | Up | Why C?