TY - JOUR
T1 - c-trie++
T2 - A dynamic trie tailored for fast prefix searches
AU - Tsuruta, Kazuya
AU - Köppl, Dominik
AU - Kanda, Shunsuke
AU - Nakashima, Yuto
AU - Inenaga, Shunsuke
AU - Bannai, Hideo
AU - Takeda, Masayuki
N1 - Funding Information:
This work was supported by JSPS KAKENHI Grant Numbers JP18F18120 (DK), JP21K17701 (DK), JP18K18002 (YN), JP17H01697 (SI), JP16H02783 (HB), JP20H04141 (HB), JP18H04098 (MT), and by JST PRESTO Grant Number JPMJPR1922 (SI).
Publisher Copyright:
© 2021 The Authors
PY - 2022/5
Y1 - 2022/5
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=85114675873&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85114675873&partnerID=8YFLogxK
U2 - 10.1016/j.ic.2021.104794
DO - 10.1016/j.ic.2021.104794
M3 - Article
AN - SCOPUS:85114675873
VL - 285
JO - Information and Computation
JF - Information and Computation
SN - 0890-5401
M1 - 104794
ER -