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)
- Fully-Functional Suffix Trees and Optimal Text Searching in BWT-runs Bounded Space
- Survey and Taxonomy of Lossless Graph Compression and Space-Efficient Graph Representations
- Parallel Construction of Wavelet Trees on Multicore Architectures
- Faster Approximate Pattern Matching in Compressed Repetitive Texts
- Relative Suffix Trees
- Spaces, Trees and Colors: The Algorithmic Landscape of Document Retrieval on Sequences
- Using Compressed Suffix-Arrays for a Compact Representation of Temporal-Graphs
- Optimal Encodings for Range Top-k, Selection, and Min-Max
- Grammar Compressed Sequences with Rank/Select Support
- Navigating Planar Topologies in Near-Optimal Space and Time
- Improved Compressed String Dictionaries
- Succinct Permutation Graphs
- Log(Graph): A Near-Optimal High-Performance Graph Representation
- Slim Graph: Practical Lossy Graph Compression for Approximate Graph Processing, Storage, and Analytics
- Space-efficient merging of succinct de Bruijn graphs
- Lyndon Array Construction during Burrows-Wheeler Inversion
- Energy consumption in compact integer vectors: A study case
- Queries on LZ-Bounded Encodings
- Rank, select and access in grammar-compressed strings
- Succinct representation of labeled trees
- Simulating the DNA String Graph in Succinct Space
- Efficient Compressed Wavelet Trees over Large Alphabets
- Optimal Planar Orthogonal Skyline Counting Queries
- Encodings for Range Minimum Queries over Bounded Alphabets
- Space-efficient Data Structure for Next/Previous Larger/Smaller Value Queries
- Various improvements to text fingerprinting
- Hypersuccinct Trees -- New universal tree source codes for optimal compressed tree data structures and range minima
- Rank/Select Queries over Mutable Bitmaps
- Succinct Euler-Tour Trees
- Selection from read-only memory with limited workspace
- Fast Prefix Search in Little Space, with Applications
- Optimal Query Time for Encoding Range Majority
- External Memory Algorithms For Path Traversal in Graphs