Compact dictionaries for variable-length keys and data with applications
We consider the problem of maintaining a dynamic dictionary T of keys and associated data for which both the keys and data are bit strings that can vary in length from zero up to the length w of a machine word. We present a data structure for this variable-bit-length dictionary problem that supports...
Gespeichert in:
Veröffentlicht in: | ACM transactions on algorithms 2008-05, Vol.4 (2), p.1-25 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | We consider the problem of maintaining a dynamic dictionary
T
of keys and associated data for which both the keys and data are bit strings that can vary in length from zero up to the length
w
of a machine word. We present a data structure for this variable-bit-length dictionary problem that supports constant time lookup and expected amortized constant-time insertion and deletion. It uses
O
(
m
+ 3
n
−
n
log
2
n
) bits, where
n
is the number of elements in
T
, and
m
is the total number of bits across all strings in
T
(keys and data). Our dictionary uses an array
A
[1 …
n
] in which locations store variable-bit-length strings. We present a data structure for this variable-bit-length array problem that supports worst-case constant-time lookups and updates and uses
O
(
m
+
n
) bits, where
m
is the total number of bits across all strings stored in
A
.
The motivation for these structures is to support applications for which it is helpful to efficiently store short varying-length bit strings. We present several applications, including representations for semidynamic graphs, order queries on integers sets, cardinal trees with varying cardinality, and simplicial meshes of
d
dimensions. These results either generalize or simplify previous results. |
---|---|
ISSN: | 1549-6325 1549-6333 |
DOI: | 10.1145/1361192.1361194 |