**
Curated collection of data structures for the JavaScript language.
**

Mnemonist is a collection of data structures implemented in JavaScript.

It gathers classic data structures (think heap, trie etc.) as well as more exotic ones such as Burkhard-Keller trees etc.

It strives at being:

- As performant as possible for a high-level language.
- Completely modular (don’t need to import the whole library just to use a simple heap).
- Simple & straightforward to use and consistent with JavaScript standard objects’ API.

## Installation

You can download the source directly from the Github repository or using npm:

```
npm install --save mnemonist
```

## Documentation

- BiMap
- BitSet
- Bloom Filter
- Burkhard-Keller Tree
- StaticDisjointSet
- Dynamic Arrays
- Fibonacci Heap
- Heap
- Index
- Inverted Index
- Linked List
- MultiIndex
- MultiMap
- MultiSet
- Queue
- RangeMap
- Set (helpers)
- SparseSet
- Stack
- Suffix Array
- Generalized Suffix Array
- SymSpell
- Trie
- Vantage Point Tree

Note that this list does not include a `Graph`

data structure whose implementation is usually far too complex for the scope of this library.

However, we advise the reader to take a look at the `graphology`

library instead.

Don’t find the data structure you need? Maybe we can work it out together.

## Contribution

Contributions are obviously welcome. Be sure to lint the code & add relevant unit tests.

```
# Installing
git clone git@github.com:Yomguithereal/mnemonist.git
cd mnemonist
npm install
# Linting
npm run lint
# Running the unit tests
npm test
```

## Changelog

The full changelog for the library can be found here.

## About

This documentation has been built using Jekyll, using the Papyrus theme by @hugoferreira.

## License

MIT