# taiga

> Collection of implementations of tree data structures

Latest version **0.0.1** (published 2018-08-16) · MPL-2.0 license · 0 weekly downloads

## Install

```sh
npm install taiga
pnpm add taiga
yarn add taiga
bun add taiga
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2018-08-16 |
| First published | 2018-08-16 |
| Weekly downloads | 0 |
| License | MPL-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 34.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Cody Peter Mello |
| Maintainers | melloc |
| Keywords | avl |

## Links

- npm: https://www.npmjs.com/package/taiga
- Repository: https://github.com/melloc/node-taiga
- Homepage: https://github.com/melloc/node-taiga#readme
- Issues: https://github.com/melloc/node-taiga/issues
- npm.io page: https://npm.io/package/taiga

## Dependencies (1)

- [assert-plus](https://npm.io/package/assert-plus.md) ^1.0.0

## Recent versions

- 0.0.1 (latest) — 2018-08-16

## README

# taiga

`taiga` is a collection of implementations of different tree structures.

# Installation

    npm install taiga

# API

## `AVLTree`

Construct a new [AVL tree](https://en.wikipedia.org/wiki/AVL_tree), whose
values are sorted using the function `compare`. For example:

```javascript
var mod_taiga = require('taiga');
var tree = new mod_taiga.AVLTree({
    compare: function numcmp(a, b) {
        return a - b;
    }
});

for (var i = 0; i < 5; ++i) {
    tree.insert(i);
}
```

Like [Array.prototype.sort()], `AVLTree` expects that the comparison function
returns a negative value when the first value should sort before the second,
`0` when the two are equal, and a positive value when the second value should
sort after the first.

### `AVLTree#toArray()`

Return an array of all values in the tree, in order from lowest value to
highest value.

### `AVLTree#forEach(f)`

Perform an in-order walk of the tree, calling the function
`f(value, index, node)` on every node.

### `AVLTree#first()`

Returns the lowest-valued node in the tree.

### `AVLTree#last()`

Returns the highest-valued node in the tree.

### `AVLTree#find(val)`

Search the tree for a node with a matching value. If none exist within the tree,
then this method returns `null`. Otherwise, it returns an `AVLNode`.

### `AVLTree#insert(val)`

Insert a value into the tree. This function returns the `AVLNode` that holds the
inserted value.

### `AVLTree#remove(val)`

Remove a value from the tree. Note that if there are multiple nodes within the
tree with the same value, then only one of them will be removed. This method
returns `null` if there was no matching value within the tree, or the removed
`AVLNode`.

## `AVLNode`

### `AVLNode#value()`

Return the value held by this node.

### `AVLNode#valid()`

Check whether this node is still within its tree.

### `AVLNode#remove()`

Remove this node from the tree.

### `AVLNode#prev()`

Return the previous equal- or lower-valued node within the tree.

### `AVLNode#next()`

Return the next equal- or higher-valued node within the tree.

# License

This Source Code Form is subject to the terms of the Mozilla Public License, v.
2.0.  For the full license text see LICENSE, or http://mozilla.org/MPL/2.0/.

Copyright (c) 2018, Joyent, Inc.

[Array.prototype.sort()]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

---
_Source: https://npm.io/package/taiga · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
