Top Tree Compression of Tries

02/06/2019
by   Philip Bille, et al.
0

We present a compressed representation of tries based on top tree compression [ICALP 2013] that works on a standard, comparison-based, pointer machine model of computation and supports efficient prefix search queries. Namely, we show how to preprocess a set of strings of total length n over an alphabet of size σ into a compressed data structure of worst-case optimal size O(n/_σ n) that given a pattern string P of length m determines if P is a prefix of one of the strings in time O((mσ,m + n)). We show that this query time is in fact optimal regardless of the size of the data structure. Existing solutions either use Ω(n) space or use word RAM bit tricks (i.e. do not work on a pointer machine). Our result is the first solution on a pointer machine that achieves worst-case o(n) space. Along the way, we develop several interesting data structures that work on a pointer machine and are of independent interest. These include an optimal data structure for random access to a grammar-compressed string and an optimal data structure for a variant of the level ancestor problem.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset