Self-adjusting binary search trees
Journal of the ACM (JACM)
AVL-trees for localized search
Information and Control
Making data structures persistent
Journal of Computer and System Sciences - 18th Annual ACM Symposium on Theory of Computing (STOC), May 28-30, 1986
Introduction to algorithms
Persistent lists with catenation via recursive slow-down
STOC '95 Proceedings of the twenty-seventh annual ACM symposium on Theory of computing
Purely functional representations of catenable sorted lists
STOC '96 Proceedings of the twenty-eighth annual ACM symposium on Theory of computing
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Purely functional data structures
Purely functional data structures
Breadth-first numbering: lessons from a small exercise in algorithm design
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Sorting and/by Merging Finger Trees
ISAAC '92 Proceedings of the Third International Symposium on Algorithms and Computation
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Polymorphic Type Schemes and Recursive Definitions
Proceedings of the 6th Colloquium on International Symposium on Programming
MPC '98 Proceedings of the Mathematics of Program Construction
A new representation for linear lists
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Journal of Functional Programming
Program-ing finger trees in Coq
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Lightweight semiformal time complexity analysis for purely functional data structures
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Report on the tenth ICFP programming contest
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Untangling Tanglegrams: Comparing Trees by Their Drawings
ISBRA '09 Proceedings of the 5th International Symposium on Bioinformatics Research and Applications
Purely functional 1-2 brother trees
Journal of Functional Programming
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
The performance of the Haskell containers package
Proceedings of the third ACM Haskell symposium on Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Untangling Tanglegrams: Comparing Trees by Their Drawings
IEEE/ACM Transactions on Computational Biology and Bioinformatics (TCBB)
Stream fusion on haskell unicode strings
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
A generic parallel collection framework
Euro-Par'11 Proceedings of the 17th international conference on Parallel processing - Volume Part II
Monoids: theme and variations (functional pearl)
Proceedings of the 2012 Haskell Symposium
Higher-Order reactive programming with incremental lists
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Type-changing rewriting and semantics-preserving transformation
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
We introduce 2-3 finger trees, a functional representation of persistent sequences supporting access to the ends in amortized constant time, and concatenation and splitting in time logarithmic in the size of the smaller piece. Representations achieving these bounds have appeared previously, but 2-3 finger trees are much simpler, as are the operations on them. Further, by defining the split operation in a general form, we obtain a general purpose data structure that can serve as a sequence, priority queue, search tree, priority search queue and more.