๐ฟ Data Structures
Advanced Data Structures by Erik Demaine
Playground for data structures in JavaScript. This is a child project of js-library and the twin project of js-algorithms.
๐ฐ Description
This README regroups dozens of projects focusing on implementing data structures with JavaScript. This project itself does not contain any code.
๐ถ Children
๐ข Sequences
๐ข @list-abstraction/specification : List specification for JavaScript
Arrays
- @aureooms/js-arraylist : Dynamic array data structures for JavaScript
Double-ended queues
๐ @data-structure/deque : Python's deque data structure for JavaScript
Linked lists
โ๏ธ @list-abstraction/doubly-linked-list : Doubly linked list data structures for JavaScriptโ๏ธ @data-structure-algebra/doubly-linked-list : Doubly linked lists for JavaScript
๐ @data-structure-algebra/circularly-linked-list : Circularly linked lists for JavaScript๐ฎ @aureooms/js-sll : Singly linked list data structures for JavaScript๐ฎ @data-structure-algebra/singly-linked-list : Singly linked lists for JavaScript
๐ผ @aureooms/js-fifo : First In, First Out data structures for JavaScript
Stacks
๐ฆ @aureooms/js-lifo : Last In, First Out data structures for JavaScript
๐คน Maintaining priorities
๐ Heaps
๐ป @heap-data-structure/specification: Specification for heap data structures in JavaScript๐ @heap-data-structure/d-ary-heap: d-ary heap data structure for JavaScript๐ @heap-data-structure/pairing-heap: Pairing heap data structure for JavaScript๐ @heap-data-structure/fibonacci-heap: Fibonacci heap data structure for JavaScript๐ @heap-data-structure/binomial-heap: Binomial heap data structure for JavaScript๐ @comparison-sorting/heap-sort: Heap sort algorithm for Javascript๐ฆ @data-structure/heapq: Python'sheapq
library for Javascript
๐ Searching
Total order
๐ฑ Search trees
- @aureooms/js-bst : Binary search tree data structures for JavaScript
๐ @binary-search-tree/red-black-tree : Red-black tree data structure for JavaScript
Other
โฉ @aureooms/js-skip-list : Skip list data structure for JavaScript
Strings
โ๏ธ Tries
โ๏ธ @trie-data-structure/uncompressed-trie : Trie data structures for JavaScript
๐ฒ Persistent data structures
๐ฒ @functional-data-structure/persistent : Persistent data structures for JavaScript๐ต @functional-data-structure/fingertree: Finger tree data structure for JavaScript๐ฆ @functional-data-structure/persistent-stack: Persistent stack data structure for JavaScript
๐ช Hashing
Nothing yet.
๐ Union-find (disjoint sets)
๐ @union-find/non-contiguous : Non-contiguously-allocated disjoint-set data structures for JavaScript๐ @union-find/contiguous : Contiguously-allocated disjoint-set set data structures for JavaScript
๐ Graphs
๐ @collection-abstraction/pairs: Pairs set for JavaScript- @aureooms/js-gn : Graphs and networks data structures and algorithms for JavaScript
๐ Python's collections library for Javascript
- @aureooms/js-collections : Python's collections library for JavaScript
- @aureooms/js-collections-chainmap : Collections library for JavaScript
๐ฏ @collection-abstraction/counter : Python's counter data structure for JavaScript- @aureooms/js-collections-defaultdict : Python's defaultdict data structure for JavaScript
๐ @data-structure/deque : Python's deque data structure for JavaScript๐ @collection-abstraction/dict : Collections library for JavaScript- @aureooms/js-collections-namedtuple : Python's namedtuple data structure for JavaScript
- @aureooms/js-collections-ordereddict : Python's ordereddict data structure for JavaScript
- @aureooms/js-collections-set : Python's set data structure for JavaScript
๐ Geometry
- @aureooms/js-cg : Computational geometry data structures and algorithms for JavaScript
Miscellaneous
๐ฌ @aureooms/js-pubsub : Publish-subscribe pattern data structures for JavaScript- @aureooms/js-dict : Dictionary data structure for JavaScript
Those packages aim to provide code bricks that are as generic as possible. Some examples are:
- a
d
-ary heap that can be parametrized with anyd
, - binary search trees built on the same left rotate and right rotate functions,
- an ArrayList implementation with parameterizable allocator.
๐ Reference
A list of links and projects focusing on data structures implementation.
โ Projects implementing data structures in JavaScript
- https://github.com/nzakas/computer-science-in-javascript
- https://github.com/benoitvallon/computer-science-in-javascript
- http://www.nayuki.io
- https://github.com/Yomguithereal/mnemonist
๐ฆ Projects implementing data structures in other languages
- https://github.com/patmorin/ods (C++, Java, Python)
- http://www.nayuki.io (C, C++, Java, C#, Python, Haskell, MATLAB and others)
- http://rosettacode.org (All kinds of languages)
- https://github.com/mahmoud/boltons (Python)
- https://github.com/simongog/sdsl-lite (C++)