Fully persistent data structures for disjoint set union problems

  • Giuseppe F. Italiano
  • Neil Sarnak
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 519)


We consider the problem of maintaining a partition of n elements of disjoint sets under an arbitrary sequence of union and find operations in a fully persistent fashion. We show how to access (i.e., perform a find operation) and modify (i.e., perform a union operation) each version of the partition in O(log n) worst-case time and in O(1) amortized space per update. No better bound is possible for pointer based algorithms.


Union Operation Concatenate Operation Canonical Element Splitting Step Lookup 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]
    A. V. Aho, J. E. Hopcroft, and J. D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, MA, 1974.Google Scholar
  2. [2]
    A. Apostolico, G. Gambosi, G. F. Italiano, M. Talamo, “The set union problem with unlimited backtracking”, Tech. Rep. CS-TR-908, Department of Computer Science, Purdue University, 1989.Google Scholar
  3. [3]
    D. Bacon, V. Nguyen, R. Strom, D. Yellin, “The Hermes language reference manual”, IBM Tech. Rep., 1990.Google Scholar
  4. [4]
    L. Banachowski, “A complement to Tarjan's result about the lower bound on the complexity of the set union problem”, Inform. Processing Lett. 11 (1980), 59–65.Google Scholar
  5. [5]
    N. Blum, “On the single operation worst-case time complexity of the disjoint set union problem”, SIAM J. Comput. 15 (1986), 1021–1024.Google Scholar
  6. [6]
    R. B. K. Dewar, E. Schonberg, J. T. Schwartz, “Introduction to the use of the Set-Theoretic Programming Language SETL”, Courant Institute of Mathematical Sciences, Computer Science Department, New York University, 1981.Google Scholar
  7. [7]
    P. Dietz, “Fully persistent arrays”, Proc. Workshop on Algorithms and Data Structures (WADS 1989), Lecture Notes in Computer Science vol. 382, Springer-Verlag, Berlin, 1989, 67–74.Google Scholar
  8. [8]
    J. R. Driscoll, N. Sarnak, D. D. Sleator, R. E. Tarjan, “Making data structures persistent”, J. Comput. Sys. Sci. 38 (1989), 86–124.Google Scholar
  9. [9]
    M. L. Fredman, M. E. Saks, “The cell probe complexity of dynamic data structures”, Proc. 21th Annual ACM Symp. on Theory of Computing, 1989, 345–354.Google Scholar
  10. [10]
    S. Huddleston, K. Mehlhorn, “A new data structure for representing sorted lists”, Acta Informatica 17 (1982), 157–184.Google Scholar
  11. [11]
    J. A. La Poutré, “Lower bounds for the union-find and the split-find problem on pointer machines”, Proc. 22nd Annual ACM Symposium on Theory of Computing, 1990, 34–44.Google Scholar
  12. [12]
    H. Mannila, E. Ukkonen, “On the complexity of unification sequences”, Proc. 3rd International Conference on Logic Programming, Lecture Notes in Computer Science 225, Springer-Verlag, Berlin, 1986, 122–133.Google Scholar
  13. [13]
    H. Mannila, E. Ukkonen, “Time parameter and arbitrary deunions in the set union problem”, Proc. 1st Scandinavian Workshop on Algorithm Theory (SWAT 88), Lecture Notes in Computer Science vol. 318, Springer-Verlag, Berlin, 1988, 34–42.Google Scholar
  14. [14]
    N. Sarnak, R. E. Tarjan, “Planar point location using persistent search trees”, Comm. ACM 29 (1986), 669–679.Google Scholar
  15. [15]
    R. E. Tarjan, “Efficiency of a good but not linear set union algorithm”, J. Assoc. Comput. Mach. 22 (1975), 215–225.Google Scholar
  16. [16]
    R. E. Tarjan, “A class of algorithms which require non linear time to maintain disjoint sets”, J. Comput. Syst. Sci. 18 (1979), 110–127.Google Scholar
  17. [17]
    R. E. Tarjan, “Amortized computational complexity”, SIAM J. Alg. Disc. Meth. 6 (1985), 306–318.Google Scholar
  18. [18]
    R. E. Tarjan, J. van Leeuwen, “Worst-case analysis of set union algorithms”, J. Assoc. Comput. Mach. 31 (1984), 245–281.Google Scholar
  19. [19]
    D. H. D. Warren, L. M. Pereira, “Prolog — the language and its implementation compared with LISP”, ACM SIGPLAN Notices 12 (1977), 109–115.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Giuseppe F. Italiano
    • 1
    • 2
  • Neil Sarnak
    • 3
  1. 1.Department of Computer ScienceColumbia UniversityNew York
  2. 2.Dipartimento di Informatica e SistemisticaUniversità di Roma “La Sapienza”RomaItaly
  3. 3.IBM Research DivisionT.J. Watson Research CenterYorktown Heights

Personalised recommendations