Abstract
This paper has outlined an algorithm for fully persistent arrays in which Access operations take O(log log n) time and Store operations take O(log log n) amortized expected time. The algorithm uses linear space.
Because any data structure can be implemented with an array, we can use the techniques described in this paper to make any data structure fully persistent at a cost of an extra factor of log log n per operation and using space proportional to the number of memory modifications. Of course, a data structure that is efficient only in the amortized sense may perform poorly if made fully persistent, because expensive operations may be replicated on many branches of the version tree.
Preview
Unable to display preview. Download preview PDF.
References
Paul F. Dietz. Maintaining order in a linked list. In Proc. 14th ACM STOC, pages 122–127, May 1982.
Paul F. Dietz and Daniel D. Sleator. Two algorithms for maintaining order in a list. In Proc. 19th ACM STOC, pages 365–372, May 1987. Submitted to JCSS. A revised version of the paper is available that tightens up the analysis.
M. Dietzfelbinger, A. Karlin, K. Melhorn, F. Meyer auf der Heide, H. Rohnert, and R. E. Tarjan. Dynamic perfect hashing: Upper and lower bounds. In Proc. 29th FOCS, pages 524–531, 1988. The application to persistent arrays was presented but does not appear in the proceedings.
James R. Driscoll, Neil Sarnak, Daniel D. Sleator, and Robert E. Tarjan. Making data structures persistent. In Proc. 18th ACM STOC, pages 109–121, May 1986.
Carlo Montangero, Giuliano Pacini, Maria Simi, and Franco Turini. Information management in context trees. Acta. Info., 10:85–94, 1978.
Mark Overmars. A O(1) average time update scheme for balanced binary search trees. Bull. EATCS, pages 27–29, 1982.
Neil Sarnak and Robert E. Tarjan. Planar point location using persistent search trees. Communications of the ACM, 29(7):669–679, July 1986.
A. K. Tsakalidis. Maintaining order in a generalized linked list. Acta. Info., 21(1):101–112, 1984.
P. van Emde Boas. Preserving order in a forest in less than logarithmic time and linear space. Info. Proc. Lett., 6(3):80–82, June 1977.
P. van Emde Boas, R. Kaas, and E. Zijlstra. Design and implementation of an efficient priority queue. Math. Sys. Theo., 10:99–127, 1977.
Ben Wegbreit. Retrieval from context trees. Info. Proc. Lett., 3(4):119–120, March 1975.
Ben Wegbreit. Faster retrieval from context trees. Communications of the ACM, 19(9):526–529, September 1976.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dietz, P.F. (1989). Fully persistent arrays. In: Dehne, F., Sack, J.R., Santoro, N. (eds) Algorithms and Data Structures. WADS 1989. Lecture Notes in Computer Science, vol 382. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51542-9_8
Download citation
DOI: https://doi.org/10.1007/3-540-51542-9_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51542-5
Online ISBN: 978-3-540-48237-6
eBook Packages: Springer Book Archive