Fully persistent arrays

Extended abstract
  • Paul F. Dietz
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 382)


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.


Priority Queue Access Operation Version Tree Context Tree Store Operation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Paul F. Dietz. Maintaining order in a linked list. In Proc. 14th ACM STOC, pages 122–127, May 1982.Google Scholar
  2. [2]
    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.Google Scholar
  3. [3]
    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.Google Scholar
  4. [4]
    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.Google Scholar
  5. [5]
    Carlo Montangero, Giuliano Pacini, Maria Simi, and Franco Turini. Information management in context trees. Acta. Info., 10:85–94, 1978.Google Scholar
  6. [6]
    Mark Overmars. A O(1) average time update scheme for balanced binary search trees. Bull. EATCS, pages 27–29, 1982.Google Scholar
  7. [7]
    Neil Sarnak and Robert E. Tarjan. Planar point location using persistent search trees. Communications of the ACM, 29(7):669–679, July 1986.CrossRefGoogle Scholar
  8. [8]
    A. K. Tsakalidis. Maintaining order in a generalized linked list. Acta. Info., 21(1):101–112, 1984.Google Scholar
  9. [9]
    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.Google Scholar
  10. [10]
    P. van Emde Boas, R. Kaas, and E. Zijlstra. Design and implementation of an efficient priority queue. Math. Sys. Theo., 10:99–127, 1977.Google Scholar
  11. [11]
    Ben Wegbreit. Retrieval from context trees. Info. Proc. Lett., 3(4):119–120, March 1975.Google Scholar
  12. [12]
    Ben Wegbreit. Faster retrieval from context trees. Communications of the ACM, 19(9):526–529, September 1976.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Paul F. Dietz
    • 1
  1. 1.Department of Computer ScienceUniversity of RochesterRochesterUSA

Personalised recommendations