Abstract
This article introduces a new data-structural object that we call the tiny pointer. In many applications, traditional -bit pointers can be replaced with -bit tiny pointers at the cost of only a constant-factor time overhead and a small probability of failure. We develop a comprehensive theory of tiny pointers and give optimal constructions for both fixed-size tiny pointers (i.e., settings in which all of the tiny pointers must be the same size) and variable-size tiny pointers (i.e., settings in which the average tiny-pointer size must be small, but some tiny pointers can be larger). If a tiny pointer references an item in an array filled to load factor , then the optimal tiny-pointer size is bits in the fixed-size case, and expected bits in the variable-size case.Our tiny-pointer constructions also require us to revisit several classic problems having to do with balls and bins; these results may be of independent interest.Using tiny pointers, we apply tiny pointers to five classic data-structure problems. We show that: - A data structure storing -bit values for keys with constant-factor time modifications/queries can be implemented to take space bits, for any constant 0\) ]]>, as long as the user stores a tiny pointer of expected size with each key - here, is the th iterated logarithm. - Any binary search tree can be made succinct, meaning that it achieves times the optimal space, with constant-factor time overhead, and can even be made to be within bits of optimal if we allow for -time modifications - this holds even for rotation-based trees such as the splay tree and the red-black tree. - Any fixed-capacity key-value dictionary can be made stable (i.e., items do not move once inserted) with constant-factor time overhead and -factor space overhead. - Any key-value dictionary that requires uniform-size values can be made to support arbitrary-size values with constant-factor time overhead and with an additional space consumption of bits per -bit value for an arbitrary constant 0\) ]]> of our choice. - Given an external-memory array of size containing a dynamic set of up to key-value pairs, it is possible to maintain an internal-memory stash of size bits so that the location of any key-value pair in can be computed in constant time (and with no IOs).In each case tiny pointers allow for us to take a natural space-inefficient solution that uses pointers and make it space-efficient for free.
| Original language | English |
|---|---|
| Article number | 38 |
| Journal | ACM Transactions on Algorithms |
| Volume | 21 |
| Issue number | 4 |
| DOIs | |
| State | Published - Sep 8 2025 |
Keywords
- balanced allocation
- balls and bins
- hashing
- load balancing
- pointers
- randomized algorithms
- retrieval
- space-efficient
Fingerprint
Dive into the research topics of 'Tiny Pointers'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver