Succinct Choice Dictionaries
Abstract
The choice dictionary is introduced as a data structure that can be initialized with a parameter and subsequently maintains an initially empty subset of under insertion, deletion, membership queries and an operation choice that returns an arbitrary element of . The choice dictionary appears to be fundamental in space-efficient computing. We show that there is a choice dictionary that can be initialized with and an additional parameter and subsequently occupies bits of memory and executes each of the four operations insert, delete, contains (i.e., a membership query) and choice in time on a word RAM with a word length of bits. In particular, with , we can support insert, delete, contains and choice in constant time using bits for arbitrary fixed . We extend our results to maintaining several pairwise disjoint subsets of . We study additional space-efficient data structures for subsets of , including one that supports only insertion and an operation extract-choice that returns and deletes an arbitrary element of . All our main data structures can be initialized in constant time and support efficient iteration over the set , and we can allow changes to while an iteration over is in progress. We use these abilities crucially in designing the most space-efficient algorithms known for solving a number of graph and other combinatorial problems in linear time. In particular, given an undirected graph with vertices and edges, we can output a spanning forest of in time with at most bits of working memory for arbitrary fixed .
Keywords
Cite
@article{arxiv.1604.06058,
title = {Succinct Choice Dictionaries},
author = {Torben Hagerup and Frank Kammer},
journal= {arXiv preprint arXiv:1604.06058},
year = {2017}
}