# Dastal

[![npm](https://img.shields.io/npm/v/dastal.svg)](https://www.npmjs.com/package/dastal)
[![types](https://img.shields.io/npm/types/dastal)](https://www.npmjs.com/package/dastal)
[![nycrc config on GitHub](https://img.shields.io/nycrc/havelessbemore/dastal?config=.nycrc.json)](https://www.npmjs.com/package/dastal)

Data structures & algorithms implementations for node

## Installing

```bash
npm install dastal
```

## API

See [docs/](./docs/README.md) or the [wiki](https://github.com/havelessbemore/dastal/wiki)  for details. At a glance:

### Interfaces
- [Heap](docs/interfaces/heap.md)
- [List](docs/interfaces/list.md)
- [Queue](docs/interfaces/queue.md)
- [SegmentTree](docs/interfaces/segmenttree.md)
- [Stack](docs/interfaces/stack.md)
- [Tree](docs/interfaces/tree.md)

### Classes
- [AATree](docs/classes/aatree.md)
- [AVLTree](docs/classes/avltree.md)
- [ArrayList](docs/classes/arraylist.md)
- [ArrayQueue](docs/classes/arrayqueue.md)
- [ArrayStack](docs/classes/arraystack.md)
- [BinaryHeap](docs/classes/binaryheap.md)
- [DoublyLinkedList](docs/classes/doublylinkedlist.md)
- [InOrderSegmentTree](docs/classes/inordersegmenttree.md)
- [LevelOrderSegmentTree](docs/classes/levelordersegmenttree.md)
- [LinkedList](docs/classes/linkedlist.md)
- [LinkedQueue](docs/classes/linkedqueue.md)
- [LinkedStack](docs/classes/linkedstack.md)
- [SkewHeap](docs/classes/skewheap.md)

### Utilities
- [ArrayUtils](docs/modules/arrayutils.md)
- [IteratorUtils](docs/modules/iteratorutils.md)
- [NumberUtils](docs/modules/numberutils.md)
- [StringUtils](docs/modules/stringutils.md)
- [u32](docs/modules/u32.md)

## Contribute

There are many ways to contribute:
* [Submit bugs](https://github.com/havelessbemore/dastal/issues) and help verify fixes.
* Review [source code changes](https://github.com/havelessbemore/dastal/pulls).
* Contribute bug fixes.