Purely Functional Worst Case Constant Time Catenable Sorted Lists

  • Gerth Stølting Brodal
  • Christos Makris
  • Kostas Tsichlas
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4168)


We present a purely functional implementation of search trees that requires O(logn) time for search and update operations and supports the join of two trees in worst case constant time. Hence, we solve an open problem posed by Kaplan and Tarjan as to whether it is possible to envisage a data structure supporting simultaneously the join operation in O(1) time and the search and update operations in O(logn) time.


data structures sorted lists purely functional programming 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bent, S., Sleator, D., Tarjan, R.: Biased Search Trees. SIAM Journal of Computing 14, 545–568 (1985)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Brodal, G.S.: Partially Persistent Data Structures of Bounded Degree with Constant Update Time. Nordic Journal of Computing 3(3), 238–255 (1996)MathSciNetGoogle Scholar
  3. 3.
    Brodal, G.S., Okasaki, C.: Optimal Purely Functional Priority Queues. Journal of Functional Programming 6(6), 839–857 (1996)zbMATHCrossRefGoogle Scholar
  4. 4.
    Buchsbaum, A., Tarjan, R.E.: Confluently persistent deques via data structural bootstrapping. Journal of Algorithms 18, 513–547 (1995)zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Dietz, P.F.: Fully Persistent Arrays. In: Dehne, F., Santoro, N., Sack, J.-R. (eds.) WADS 1989. LNCS, vol. 382, pp. 67–74. Springer, Heidelberg (1989)Google Scholar
  6. 6.
    Dietz, P., Raman, R.: Persistence. Amortization and Randomization. In: Proc. of the 2nd ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 78–88 (1991)Google Scholar
  7. 7.
    Driscoll, J.R., Sarnak, N., Sleator, D., Tarjan, R.E.: Making Data Structures Persistent. Journal of Computer and System Sciences 38(1), 86–124 (1989)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Driscoll, J.R., Sleator, D., Tarjan, R.E.: Fully Persistent Lists with Catenation. Journal of the ACM 41(5), 943–959 (1994)CrossRefGoogle Scholar
  9. 9.
    Fiat, A., Kaplan, H.: Making Data Structures Confluently Persistent. Journal of Algorithms 48(1), 16–58 (2003)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Kaplan, H.: Persistent Data Structures. In: Mehta, D., Sahni, S. (eds.) Handbook of Data Structures. CRC Press, Boca Raton (2004)Google Scholar
  11. 11.
    Kaplan, H., Okasaki, C., Tarjan, R.E.: Simple Confluently Persistent Catenable Lists. SIAM Journal of Computing 30(3), 965–977 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Kaplan, H., Tarjan, R.E.: Purely Functional, Real-Time Deques with Catenation. Journal of the ACM 46(5), 577–603 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Kaplan, H., Tarjan, R.E.: Purely Functional Representations of Catenable Sorted Lists. In: Proc. of the 28th Annual ACM Symposium on Theory of Computing (STOC), pp. 202–211 (1996)Google Scholar
  14. 14.
    Kaplan, H., Tarjan, R.E.: Persistent Lists with Catenation via Recursive Slow-down. In: Proc. of the 27th Annual ACM Symposium on Theory of Computing, pp. 93–102 (1995)Google Scholar
  15. 15.
    Mehlhorn, K.: Data Structures and Algorithms 1: Sorting and Searching. In: EATCS Monographs on Theoretical Computer Science. Springer, Heidelberg (1984)Google Scholar
  16. 16.
    Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, Cambridge (1998)CrossRefGoogle Scholar
  17. 17.
    Okasaki, C.: Purely Functional Random-Access Lists. In: Conf. on Functional Programming Languages and Computer Architecture (FPCA), pp. 86–95 (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Gerth Stølting Brodal
    • 1
  • Christos Makris
    • 2
  • Kostas Tsichlas
    • 2
  1. 1.Department of Computer ScienceUniversity of Aarhus, BRICS, Basic Research in Computer Science, funded by the Danish National Research Foundation 
  2. 2.Department of Computer Engineering and InformaticsUniversity of PatrasPatrasGreece

Personalised recommendations