Small Uncolored and Colored Choice Dictionaries

by   Torben Hagerup, et al.

A choice dictionary can be initialized with a parameter n∈N and subsequently maintains an initially empty subset S of {1,...,n} under insertion, deletion, membership queries and an operation choice that returns an arbitrary element of S. The choice dictionary is fundamental in space-efficient computing and has numerous applications. The best previous choice dictionary can be initialized with n and t∈N and subsequently executes all operations in O(t) time and occupies n+O(n(t/w)^t+ n) bits on a word RAM with a word length of w=Ω( n) bits. We describe a new choice dictionary that executes all operations in constant time and, in addition to the space needed to store the integer n, occupies only n+1 bits, which is shown to be optimal if w=o(n). A generalization of the choice dictionary called a colored choice dictionary is initialized with c∈N in addition to n and subsequently maintains a semipartition (S_0,...,S_c-1) of {1,...,n} under the operations setcolor(j,ℓ), which moves ℓ from its current subset to S_j, color(ℓ), which returns the unique j∈{0,...,c-1} with ℓ∈ S_j, and choice(j), which returns an arbitrary element of S_j. We describe new colored choice dictionaries that, if initialized with constant c, execute setcolor, color and choice in constant time and occupy n_2c+1 bits plus the space needed to store n if c is a power of 2, and at most n_2c+n^ϵ bits in general, for arbitrary fixed ϵ>0. We also study the possibility of iterating over the set S or over S_j for given j∈{0,...,c-1} and an application of this to breadth-first search.


page 1

page 2

page 3

page 4


An Optimal Choice Dictionary

A choice dictionary is a data structure that can be initialized with a p...

Tight Cell-Probe Lower Bounds for Dynamic Succinct Dictionaries

A dictionary data structure maintains a set of at most n keys from the u...

Fully-Dynamic Space-Efficient Dictionaries and Filters with Constant Number of Memory Accesses

A fully-dynamic dictionary is a data structure for maintaining sets that...

A Dynamic Space-Efficient Filter with Constant Time Operations

A dynamic dictionary is a data structure that maintains sets of cardinal...

How to Store a Random Walk

Motivated by storage applications, we study the following data structure...

Dynamic Packed Compact Tries Revisited

Given a dynamic set K of k strings of total length n whose characters ar...

Tiny Pointers

This paper introduces a new data-structural object that we call the tiny...

Please sign up or login with your details

Forgot password? Click here to reset