Tiny Pointers

0Citations
Citations of this article
4Readers
Mendeley users who have this article in their library.

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.

Cite

CITATION STYLE

APA

Bender, M., Conway, A., Farach-Colton, M., Kuszmaul, W., & Tagliavini, G. (2025). Tiny Pointers. ACM Transactions on Algorithms, 21(4). https://doi.org/10.1145/3700594

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free