Given a dynamic set K of k strings of total length n whose characters
are drawn from an alphabet of size σ, a keyword dictionary is a data
structure built on K that provides locate, prefix search, and update
operations on K. Under the assumption that α=w/lgσ
characters fit into a single machine word w, we propose a keyword dictionary
that represents K in nlgσ+Θ(klgn) bits of space,
supporting all operations in O(m/α+lgα) expected time on an
input string of length m in the word RAM model. This data structure is
underlined with an exhaustive practical evaluation, highlighting the practical
usefulness of the proposed data structure, especially for prefix searches - one
of the most elementary keyword dictionary operations