Making data structures confluently persistent
Journal of Algorithms - Special issue: Twelfth annual ACM-SIAM symposium on discrete algorithms
Purely functional worst case constant time catenable sorted lists
ESA'06 Proceedings of the 14th conference on Annual European Symposium - Volume 14
Lightweight semiformal time complexity analysis for purely functional data structures
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A survey of persistent data structures
ICCOMP'05 Proceedings of the 9th WSEAS International Conference on Computers
Associative-commutative rewriting on large terms
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
XML goes native: run-time representations for XTATIC
CC'05 Proceedings of the 14th international conference on Compiler Construction
Hi-index | 0.00 |
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 (deques) with catenation that supports all deque operations in constant amortized time. Our implementation is functional if we allow memoization.