Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/make-github-pseudonymous-again/js-data-structures

:herb: Data structures for JavaScript
https://github.com/make-github-pseudonymous-again/js-data-structures

agpl binary-search-trees bloom-filters computer-science data-structure data-structures dict disjoint-sets fifo functional graphs hash-tables heaps immutable javascript lifo networks persitent pubsub search-trees

Last synced: 3 months ago
JSON representation

:herb: Data structures for JavaScript

Awesome Lists containing this project

README

        

:herb: [Data Structures](https://github.com/make-github-pseudonymous-again/js-data-structures#readme)
[![License](https://img.shields.io/github/license/make-github-pseudonymous-again/js-data-structures.svg?style=flat)](https://raw.githubusercontent.com/make-github-pseudonymous-again/js-data-structures/main/LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/make-github-pseudonymous-again/js-data-structures.svg?style=flat)](https://github.com/make-github-pseudonymous-again/js-data-structures/issues)
==






Advanced Data Structures by Erik Demaine

Playground for data structures in JavaScript.
This is a child project of [js-library](https://github.com/make-github-pseudonymous-again/js-library)
and
the twin project of [js-algorithms](https://github.com/make-github-pseudonymous-again/js-algorithms).

## :newspaper: Description

This README regroups dozens of projects focusing on implementing data structures with JavaScript.
This project itself does not contain any code.

## :baby: Children

### :oden: Sequences

- :oden: [@list-abstraction/specification](https://github.com/list-abstraction/specification) : List specification for JavaScript

#### Arrays

- [@aureooms/js-arraylist](https://github.com/make-github-pseudonymous-again/js-arraylist) : Dynamic array data structures for JavaScript

#### Double-ended queues
- :snake: [@data-structure/deque](https://github.com/data-structures-and-algorithms/deque) : Python's deque data structure for JavaScript

#### Linked lists

- :left_right_arrow: [@list-abstraction/doubly-linked-list](https://github.com/list-abstraction/doubly-linked-list) : Doubly linked list data structures for JavaScript
- :left_right_arrow: [@data-structure-algebra/doubly-linked-list](https://github.com/data-structure-algebra/doubly-linked-list) : Doubly linked lists for JavaScript
- :repeat: [@data-structure-algebra/circularly-linked-list](https://github.com/data-structure-algebra/circularly-linked-list) : Circularly linked lists for JavaScript
- :izakaya_lantern: [@aureooms/js-sll](https://github.com/make-github-pseudonymous-again/js-sll) : Singly linked list data structures for JavaScript
- :izakaya_lantern: [@data-structure-algebra/singly-linked-list](https://github.com/data-structure-algebra/singly-linked-list) : Singly linked lists for JavaScript
- :blossom: [@aureooms/js-fifo](https://github.com/make-github-pseudonymous-again/js-fifo) : First In, First Out data structures for JavaScript

#### Stacks
- :icecream: [@aureooms/js-lifo](https://github.com/make-github-pseudonymous-again/js-lifo) : Last In, First Out data structures for JavaScript

### :juggling_person: Maintaining priorities

#### :fallen_leaf: [Heaps](https://github.com/heap-data-structure/about)

- :mount_fuji: [@heap-data-structure/specification](https://github.com/heap-data-structure/specification): Specification for heap data structures in JavaScript
- :octopus: [@heap-data-structure/d-ary-heap](https://github.com/heap-data-structure/d-ary-heap): d-ary heap data structure for JavaScript
- :cherries: [@heap-data-structure/pairing-heap](https://github.com/heap-data-structure/pairing-heap): Pairing heap data structure for JavaScript
- :shell: [@heap-data-structure/fibonacci-heap](https://github.com/heap-data-structure/fibonacci-heap): Fibonacci heap data structure for JavaScript
- :cherries: [@heap-data-structure/binomial-heap](https://github.com/heap-data-structure/binomial-heap): Binomial heap data structure for JavaScript
- :octopus: [@comparison-sorting/heap-sort](https://github.com/comparison-sorting/heap-sort): Heap sort algorithm for Javascript
- :vertical_traffic_light: [@data-structure/heapq](https://github.com/data-structures-and-algorithms/js-heapq): Python's `heapq` library for Javascript

### :mag: Searching

#### Total order

##### :seedling: Search trees

- [@aureooms/js-bst](https://github.com/make-github-pseudonymous-again/js-bst) : Binary search tree data structures for JavaScript
- :christmas_tree: [@binary-search-tree/red-black-tree](https://github.com/binary-search-tree/red-black-tree) : Red-black tree data structure for JavaScript

##### Other

- :fast_forward: [@aureooms/js-skip-list](https://github.com/make-github-pseudonymous-again/js-skip-list) : Skip list data structure for JavaScript

#### Strings

##### :chains: Tries
- :chains: [@trie-data-structure/uncompressed-trie](https://github.com/trie-data-structure/uncompressed-trie) : Trie data structures for JavaScript

### :evergreen_tree: Persistent data structures
- :evergreen_tree: [@functional-data-structure/persistent](https://github.com/functional-data-structure/persistent) : Persistent data structures for JavaScript
- :cactus: [@functional-data-structure/fingertree](https://github.com/functional-data-structure/finger-tree): Finger tree data structure for JavaScript
- :icecream: [@functional-data-structure/persistent-stack](https://github.com/functional-data-structure/persistent-stack): Persistent stack data structure for JavaScript

### :hocho: Hashing

Nothing yet.

### :rice_ball: Union-find (disjoint sets)
- :rice_ball: [@union-find/non-contiguous](https://github.com/union-find/non-contiguous) : Non-contiguously-allocated disjoint-set data structures for JavaScript
- :rice: [@union-find/contiguous](https://github.com/union-find/contiguous) : Contiguously-allocated disjoint-set set data structures for JavaScript

### :globe_with_meridians: Graphs

- :cherries: [@collection-abstraction/pairs](https://github.com/collection-abstraction/pairs): Pairs set for
JavaScript
- [@aureooms/js-gn](https://github.com/make-github-pseudonymous-again/js-gn) : Graphs and networks data structures and algorithms for JavaScript

### :school_satchel: Python's collections library for Javascript

- [@aureooms/js-collections](https://github.com/make-github-pseudonymous-again/js-collections) : Python's collections library for JavaScript
- [@aureooms/js-collections-chainmap](https://github.com/make-github-pseudonymous-again/js-collections-chainmap) : Collections library for JavaScript
- :100: [@collection-abstraction/counter](https://github.com/collection-abstraction/counter) : Python's counter data structure for JavaScript
- [@aureooms/js-collections-defaultdict](https://github.com/make-github-pseudonymous-again/js-collections-defaultdict) : Python's defaultdict data structure for JavaScript
- :snake: [@data-structure/deque](https://github.com/data-structures-and-algorithms/deque) : Python's deque data structure for JavaScript
- :book: [@collection-abstraction/dict](https://github.com/collection-abstraction/dict) : Collections library for JavaScript
- [@aureooms/js-collections-namedtuple](https://github.com/make-github-pseudonymous-again/js-collections-namedtuple) : Python's namedtuple data structure for JavaScript
- [@aureooms/js-collections-ordereddict](https://github.com/make-github-pseudonymous-again/js-collections-ordereddict) : Python's ordereddict data structure for JavaScript
- [@aureooms/js-collections-set](https://github.com/make-github-pseudonymous-again/js-collections-set) : Python's set data structure for JavaScript

### :triangular_ruler: Geometry

- [@aureooms/js-cg](https://github.com/make-github-pseudonymous-again/js-cg) : Computational geometry data structures and algorithms for JavaScript

### Miscellaneous
- :mailbox_with_mail: [@aureooms/js-pubsub](https://github.com/make-github-pseudonymous-again/js-pubsub) : Publish-subscribe pattern data structures for JavaScript
- [@aureooms/js-dict](https://github.com/make-github-pseudonymous-again/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 any `d`](https://github.com/heap-data-structure/d-ary-heap),
- [binary search trees built on the same left rotate and right rotate functions](https://github.com/make-github-pseudonymous-again/js-bst),
- [an ArrayList implementation with parameterizable allocator](https://github.com/make-github-pseudonymous-again/js-arraylist).

## :scroll: Reference

A list of links and projects focusing on data structures implementation.

### :coffee: 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

### :peacock: 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++)