c-trie++: A dynamic trie tailored for fast prefix searches

https://doi.org/10.1016/j.ic.2021.104794Get rights and content
Under a Creative Commons license
open access

Abstract

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 lookup, prefix search, and update operations on K. Under the assumption that α=w/lgσ characters fit into a single machine word of w bits, we propose a keyword dictionary that represents K in either nlgσ+Θ(klgn) or |T|lgσ+Θ(kw) bits of space, where |T| is the number of nodes of a trie representing K. It supports all operations in O(m/α+lgα) expected time on an input string of length m in the word RAM model. An evaluation of our implementation highlights the practical usefulness of the proposed data structure, especially for prefix searches — one of the most essential keyword dictionary operations.

Keywords

String dictionary
Compact trie
Hashing
Word-packing
Prefix searches

Cited by (0)

Parts of this work have already been presented at the Data Compression Conference (DCC) 2020 [40].