A log log n data structure for three-sided range queries
Information Processing Letters
Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A characterization of heaps and its applications
Information and Computation
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
Purely functional data structures
Purely functional data structures
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Breadth-first numbering: lessons from a small exercise in algorithm design
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
A unifying look at data structures
Communications of the ACM
A data structure for manipulating priority queues
Communications of the ACM
Red-black trees in a functional setting
Journal of Functional Programming
Journal of Functional Programming
A fresh look at binary search trees
Journal of Functional Programming
A study of algorithm animations on mobile devices
Proceedings of the 38th SIGCSE technical symposium on Computer science education
New Data Structures for IP Lookup and Conflict Detection
Algorithmics of Large and Complex Networks
Scalable i/o event handling for GHC
Proceedings of the third ACM Haskell symposium on Haskell
Hi-index | 0.00 |
This paper presents a new implementation technique for priority search queues. This abstract data type is an amazing blend of finite maps and priority queues. Our implementation supports logarithmic access to a binding with a given key and constant access to a binding with the minimum value. Priority search queues can be used, for instance, to give a simple, purely functional implementation of Dijkstra's single-source shortest-paths algorithm. A non-technical concern of the paper is to foster abstract data types and views. Priority search queues have been largely ignored by the functional programming community and we believe that they deserve to be known better. Views prove their worth both in defining a convenient interface to the abstract data type and in providing a readable implementation.