Numerical recipes in C (2nd ed.): the art of scientific computing
Numerical recipes in C (2nd ed.): the art of scientific computing
Surpassing the information theoretic bound with fusion trees
Journal of Computer and System Sciences - Special issue: papers from the 22nd ACM symposium on the theory of computing, May 14–16, 1990
Dynamic Perfect Hashing: Upper and Lower Bounds
SIAM Journal on Computing
Randomized algorithms
The design and implementation of the 4.4BSD operating system
The design and implementation of the 4.4BSD operating system
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Algorithms in C
Succinct Dynamic Data Structures
WADS '01 Proceedings of the 7th International Workshop on Algorithms and Data Structures
Experiences with the Design and Implementation of Space-Efficient Deques
WAE '01 Proceedings of the 5th International Workshop on Algorithm Engineering
An Improved Succinct Representation for Dynamic k-ary Trees
CPM '08 Proceedings of the 19th annual symposium on Combinatorial Pattern Matching
Space-efficient construction of Lempel-Ziv compressed text indexes
Information and Computation
An empirical evaluation of extendible arrays
SEA'11 Proceedings of the 10th international conference on Experimental algorithms
Succinct dynamic cardinal trees with constant time operations for small alphabet
TAMC'11 Proceedings of the 8th annual conference on Theory and applications of models of computation
The complexity of implicit and space efficient priority queues
WADS'05 Proceedings of the 9th international conference on Algorithms and Data Structures
Dynamic compressed strings with random access
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part I
Hi-index | 0.00 |
We present simple, practical and efficient data structures for the fundamental problem of maintaining a resizable one-dimensional array, A[l..l + n - 1], of fixed-size elements, as elements are added to or removed from one or both ends. Our structures also support access to the element in position i. All operations are performed in constant time. The extra space (i.e., the space used past storing the n current elements) is O√n at any point in time. This is shown to be within a constant factor of optimal, even if there are no constraints on the time. If desired, each memory block can be made to have size 2k - c for a specified constant c, and hence the scheme works effectively with the buddy system. The data structures can be used to solve a variety of problems with optimal bounds on time and extra storage. These include stacks, queues, randomized queues, priority queues, and deques.