Self-adjusting binary search trees
Journal of the ACM (JACM)
Two algorithms for maintaining order in a list
STOC '87 Proceedings of the nineteenth annual ACM symposium on Theory of computing
Purely functional random-access lists
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Science of Computer Programming - Special issue on mathematics of program construction
A generalization of binomial queues
Information Processing Letters
Purely functional representations of catenable sorted lists
STOC '96 Proceedings of the twenty-eighth annual ACM symposium on Theory of computing
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
Purely functional data structures
Purely functional data structures
A data structure for manipulating priority queues
Communications of the ACM
A Logarithmic Implementation of Flexible Arrays
Proceedings of the Second International Conference on Mathematics of Program Construction
A Simple, Efficient, and Flexible Implementation of Flexible Arrays
MPC '95 Mathematics of Program Construction
Efficient applicative data types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Journal of Functional Programming
A new method for functional arrays
Journal of Functional Programming
Hi-index | 0.00 |
The abstract data type one-sided flexible array, also called random-access list, supports look-up and update of elements and can grow and shrink at one end. We describe a purely functional implementation based on weight-balanced multiway trees that is both simple and versatile. A novel feature of the representation is that the running time of the operations can be tailored to one's needs---even dynamically at array-creation time. In particular, one can trade the running time of look-up operations for the running time of update operations. For instance, if the multiway trees have a fixed degree, the operations take θ(log n) time, where n is the size of the flexible array. If the degree doubles levelwise, look-up speeds up to θ(sqrtlog n) while update slows down to θ(2sqrt log n). We show that different tree shapes can be conveniently modelled after mixed-radix number systems.