paper

Succinct Indexable Dictionaries with Applications to Encoding -ary Trees, Prefix Sums and Multisets

arXiv:0705.0552 · doi:10.1145/1290672.1290680

Abstract

We consider the {\it indexable dictionary} problem, which consists of storing a set for some integer , while supporting the operations of $\Rank(x)$, which returns the number of elements in that are less than if , and -1 otherwise; and $\Select(i)$ which returns the -th smallest element in . We give a data structure that supports both operations in O(1) time on the RAM model and requires bits to store a set of size , where ${\cal B}(n,m) = \ceil{\lg {m \choose n}}$ is the minimum number of bits required to store any -element subset from a universe of size . Previous dictionaries taking this space only supported (yes/no) membership queries in O(1) time. In the cell probe model we can remove the additive term in the space bound, answering a question raised by Fich and Miltersen, and Pagh. We present extensions and applications of our indexable dictionary data structure, including: An information-theoretically optimal representation of a -ary cardinal tree that supports standard operations in constant time, A representation of a multiset of size from in bits that supports (appropriate generalizations of) $\Rank$ and $\Select$ operations in constant time, and A representation of a sequence of non-negative integers summing up to in bits that supports prefix sum queries in constant time.

Final version of SODA 2002 paper; supersedes Leicester Tech report 2002/16

Cited by in corpus (33)