TY - JOUR
T1 - Simple confluently persistent catenable lists
AU - Kaplan, Haim
AU - Okasaki, Chris
AU - Tarjan, Robert E.
PY - 2000
Y1 - 2000
N2 - 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.
AB - 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.
KW - Data structures
KW - Double-ended queue (deque)
KW - Functional programming
KW - Memoization
KW - Persistent data structures
KW - Queue
KW - Stack
KW - Stack-ended queue (steque)
UR - http://www.scopus.com/inward/record.url?scp=0034934546&partnerID=8YFLogxK
U2 - 10.1137/S0097539798339430
DO - 10.1137/S0097539798339430
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:0034934546
SN - 0097-5397
VL - 30
SP - 965
EP - 977
JO - SIAM Journal on Computing
JF - SIAM Journal on Computing
IS - 3
ER -