Simple confluently persistent catenable lists
We consider the problem of maintaining persistent lists subject to concatenation and to insertions and deletions at both ends. Updates to a persistent data structure are nondestructive-each operation produces a new list incorporating the change while keeping intact the list or lists to which it applies. Although general techniques exist for making data structures persistent, these techniques fail for structures that are subject to operations, such as catenation, that combine two or more versions. In this paper we develop a simple implementation of persistent double-ended queues with catenation that supports all deque operations in constant amortized time.
KeywordsLazy Evaluation Amortize Time Amortize Cost Operation Push Flip Operation
Unable to display preview. Download preview PDF.
- 3.P. F. Dietz. Fully persistent arrays. In Proceedings of the 1989 Workshop on Algorithms and Data Structures (WADS'89), pages 67–74. Springer, 1995. LNCS 382.Google Scholar
- 7.H. Kaplan. Purely functional lists. PhD thesis, Department of Computer Science, Princeton University, Princeton, NJ 08544, 1997.Google Scholar
- 8.H. Kaplan and R. E. Tarjan. Persistent lists with catenation via recursive slow-down. In Proceedings of the 27th Annual ACM Symposium on Theory of Computing (Preliminary Version), pages 93–102. ACM Press, 1995. Complete version submitted to Journal of the ACM.Google Scholar
- 9.H. Kaplan and R. E. Tarjan. Purely functional representations of catenable sorted lists. In Proceedings of the 28th Annual ACM Symposium on Theory of Computing, pages 202–211. ACM Press, 1996.Google Scholar
- 10.S. R. Kosaraju. An optimal RAM implementation of catenable min double-ended queues. In Proc. 5th ACM-SIAM Symposium on Discrete Algorithms, pages 195–203, 1994.Google Scholar
- 11.C. Okasaki. Amortization, lazy evaluation, and persistence: Lists with catenation via lazy linking. In Proc. 36th Symposium on Foundations of Computer Science, pages 646–654. IEEE, 1995.Google Scholar
- 13.C. Okasaki. Purely functional data structures. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213, 1996.Google Scholar