Skip to main content

Fully persistent arrays

Extended abstract

  • Conference paper
  • First Online:
Algorithms and Data Structures (WADS 1989)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 382))

Included in the following conference series:


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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others


  1. Paul F. Dietz. Maintaining order in a linked list. In Proc. 14th ACM STOC, pages 122–127, May 1982.

    Google Scholar 

  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. 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. 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. Carlo Montangero, Giuliano Pacini, Maria Simi, and Franco Turini. Information management in context trees. Acta. Info., 10:85–94, 1978.

    Google Scholar 

  6. Mark Overmars. A O(1) average time update scheme for balanced binary search trees. Bull. EATCS, pages 27–29, 1982.

    Google Scholar 

  7. Neil Sarnak and Robert E. Tarjan. Planar point location using persistent search trees. Communications of the ACM, 29(7):669–679, July 1986.

    Article  Google Scholar 

  8. A. K. Tsakalidis. Maintaining order in a generalized linked list. Acta. Info., 21(1):101–112, 1984.

    Google Scholar 

  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. 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. Ben Wegbreit. Retrieval from context trees. Info. Proc. Lett., 3(4):119–120, March 1975.

    Google Scholar 

  12. Ben Wegbreit. Faster retrieval from context trees. Communications of the ACM, 19(9):526–529, September 1976.

    Google Scholar 

Download references

Author information

Authors and Affiliations


Editor information

F. Dehne J. -R. Sack N. Santoro

Rights and permissions

Reprints 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.

Download citation

  • DOI:

  • 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

Publish with us

Policies and ethics