1.52.0 • Published 3 months ago

avl-tree-typed v1.52.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

NPM GitHub top language npm eslint npm bundle size npm bundle size npm

What

Brief

This is a standalone AVL Tree data structure from the data-structure-typed collection. If you wish to access more data structures or advanced features, you can transition to directly installing the complete data-structure-typed package

How

install

npm

npm i avl-tree-typed --save

yarn

yarn add avl-tree-typed

methods

npm.io

snippet

TS

import {AVLTree, AVLTreeNode} from 'data-structure-typed';
// /* or if you prefer */ import {AVLTree} from 'avl-tree-typed';

const avlTree = new AVLTree<AVLTreeNode<number>>();

const idsOrVals = [11, 3, 15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5];
avlTree.addMany(idsOrVals, idsOrVals);

const node6 = avlTree.get(6);
node6 && avlTree.getHeight(node6)           // 3
node6 && avlTree.getDepth(node6)            // 1
const getNodeById = avlTree.get(10, 'id');
getNodeById?.id                             // 10

const getMinNodeByRoot = avlTree.getLeftMost();
getMinNodeByRoot?.id                        // 1

const node15 = avlTree.get(15);
const getMinNodeBySpecificNode = node15 && avlTree.getLeftMost(node15);
getMinNodeBySpecificNode?.id                // 12

const subTreeSum = node15 && avlTree.subTreeSum(node15);
subTreeSum                                  // 70

const lesserSum = avlTree.lesserSum(10);
lesserSum                                   // 45

const node11 = avlTree.get(11);
node11?.id                                  // 11

const dfs = avlTree.DFS('in', 'node');
dfs[0].id                                   // 1 
avlTree.perfectlyBalance();
const bfs = avlTree.BFS('node');
avlTree.isPerfectlyBalanced() && bfs[0].id  // 8 

avlTree.remove(11, true)[0].deleted?.id     // 11
avlTree.isAVLBalanced();                    // true
node15 && avlTree.getHeight(node15)         // 2
avlTree.remove(1, true)[0].deleted?.id      // 1
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 4

avlTree.remove(4, true)[0].deleted?.id      // 4
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 4

avlTree.remove(10, true)[0].deleted?.id     // 10
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(15, true)[0].deleted?.id     // 15
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(5, true)[0].deleted?.id      // 5
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(13, true)[0].deleted?.id     // 13
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(3, true)[0].deleted?.id      // 3
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(8, true)[0].deleted?.id      // 8
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(6, true)[0].deleted?.id      // 6
avlTree.remove(6, true).length              // 0
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 2

avlTree.remove(7, true)[0].deleted?.id      // 7
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 2

avlTree.remove(9, true)[0].deleted?.id      // 9
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 2

avlTree.remove(14, true)[0].deleted?.id     // 14
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 1

avlTree.isAVLBalanced();                    // true
const lastBFSIds = avlTree.BFS();
lastBFSIds[0]                               // 12 

const lastBFSNodes = avlTree.BFS('node');
lastBFSNodes[0].id                          // 12

JS

const {AVLTree} = require('data-structure-typed');
// /* or if you prefer */ const {AVLTree} = require('avl-tree-typed');

const avlTree = new AVLTree();

const idsOrVals = [11, 3, 15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5];
avlTree.addMany(idsOrVals, idsOrVals);

const node6 = avlTree.get(6);
node6 && avlTree.getHeight(node6)           // 3
node6 && avlTree.getDepth(node6)            // 1
const getNodeById = avlTree.get(10, 'id');
getNodeById?.id                             // 10

const getMinNodeByRoot = avlTree.getLeftMost();
getMinNodeByRoot?.id                        // 1

const node15 = avlTree.get(15);
const getMinNodeBySpecificNode = node15 && avlTree.getLeftMost(node15);
getMinNodeBySpecificNode?.id                // 12

const subTreeSum = node15 && avlTree.subTreeSum(node15);
subTreeSum                                  // 70

const lesserSum = avlTree.lesserSum(10);
lesserSum                                   // 45

const node11 = avlTree.get(11);
node11?.id                                  // 11

const dfs = avlTree.DFS('in', 'node');
dfs[0].id                                   // 1 
avlTree.perfectlyBalance();
const bfs = avlTree.BFS('node');
avlTree.isPerfectlyBalanced() && bfs[0].id  // 8 

avlTree.remove(11, true)[0].deleted?.id     // 11
avlTree.isAVLBalanced();                    // true
node15 && avlTree.getHeight(node15)         // 2
avlTree.remove(1, true)[0].deleted?.id      // 1
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 4

avlTree.remove(4, true)[0].deleted?.id      // 4
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 4

avlTree.remove(10, true)[0].deleted?.id     // 10
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(15, true)[0].deleted?.id     // 15
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(5, true)[0].deleted?.id      // 5
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(13, true)[0].deleted?.id     // 13
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(3, true)[0].deleted?.id      // 3
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(8, true)[0].deleted?.id      // 8
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 3

avlTree.remove(6, true)[0].deleted?.id      // 6
avlTree.remove(6, true).length              // 0
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 2

avlTree.remove(7, true)[0].deleted?.id      // 7
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 2

avlTree.remove(9, true)[0].deleted?.id      // 9
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 2

avlTree.remove(14, true)[0].deleted?.id     // 14
avlTree.isAVLBalanced();                    // true
avlTree.getHeight()                         // 1

avlTree.isAVLBalanced();                    // true
const lastBFSIds = avlTree.BFS();
lastBFSIds[0]                               // 12 

const lastBFSNodes = avlTree.BFS('node');
lastBFSNodes[0].id                          // 12

API docs & Examples

API Docs

Live Examples

Examples Repository

Data Structures

Standard library data structure comparison

Benchmark

Built-in classic algorithms

Software Engineering Design Standards

1.52.0

3 months ago

1.51.9

3 months ago

1.51.8

3 months ago

1.51.7

3 months ago

1.51.6

4 months ago

1.51.5

4 months ago

1.51.4

4 months ago

1.51.0

4 months ago

1.51.2

4 months ago

1.51.1

4 months ago

1.51.3

4 months ago

1.50.9

4 months ago

1.50.8

4 months ago

1.50.7

4 months ago

1.50.6

4 months ago

1.50.5

4 months ago

1.50.4

4 months ago

1.50.3

4 months ago

1.50.2

4 months ago

1.50.1

4 months ago

1.50.0

4 months ago

1.49.7

4 months ago

1.49.6

4 months ago

1.49.9

4 months ago

1.49.8

4 months ago

1.49.5

4 months ago

1.49.4

4 months ago

1.49.3

5 months ago

1.49.1

5 months ago

1.49.2

5 months ago

1.49.0

5 months ago

1.48.9

5 months ago

1.48.8

5 months ago

1.48.7

5 months ago

1.48.6

5 months ago

1.48.5

5 months ago

1.48.4

5 months ago

1.48.0

5 months ago

1.48.2

5 months ago

1.48.1

5 months ago

1.48.3

5 months ago

1.47.9

5 months ago

1.47.8

5 months ago

1.47.7

5 months ago

1.47.6

5 months ago

1.47.5

5 months ago

1.47.4

5 months ago

1.47.3

5 months ago

1.47.2

5 months ago

1.47.1

5 months ago

1.46.8

5 months ago

1.46.7

5 months ago

1.46.6

5 months ago

1.46.5

6 months ago

1.46.3

6 months ago

1.46.2

6 months ago

1.46.1

6 months ago

1.45.3

6 months ago

1.45.2

6 months ago

1.45.1

6 months ago

1.45.0

6 months ago

1.44.1

6 months ago

1.44.0

6 months ago

1.43.3

6 months ago

1.43.1

6 months ago

1.43.0

6 months ago

1.42.9

6 months ago

1.42.8

6 months ago

1.42.7

6 months ago

1.42.6

6 months ago

1.42.5

6 months ago

1.42.4

6 months ago

1.42.3

6 months ago

1.42.2

6 months ago

1.42.1

6 months ago

1.42.0

6 months ago

1.41.9

6 months ago

1.41.8

6 months ago

1.41.7

6 months ago

1.41.6

6 months ago

1.41.5

6 months ago

1.41.4

6 months ago

1.41.3

6 months ago

1.41.2

6 months ago

1.41.1

6 months ago

1.41.0

6 months ago

1.40.0

6 months ago

1.39.6

6 months ago

1.39.5

6 months ago

1.39.4

6 months ago

1.39.3

6 months ago

1.39.2

6 months ago

1.39.1

6 months ago

1.39.0

6 months ago

1.38.9

6 months ago

1.38.8

6 months ago

1.38.7

6 months ago

1.38.6

6 months ago

1.38.5

6 months ago

1.38.4

6 months ago

1.38.3

6 months ago

1.38.2

6 months ago

1.38.1

6 months ago

1.38.0

6 months ago

1.37.9

6 months ago

1.37.8

6 months ago

1.37.7

6 months ago

1.37.6

6 months ago

1.37.5

6 months ago

1.37.4

6 months ago

1.37.3

6 months ago

1.37.2

6 months ago

1.37.0

6 months ago

1.36.9

6 months ago

1.36.8

7 months ago

1.36.6

7 months ago

1.36.5

7 months ago

1.36.4

7 months ago

1.36.3

7 months ago

1.36.2

7 months ago

1.36.0

7 months ago

1.40.0-rc

7 months ago

1.35.1

7 months ago

1.35.0

7 months ago

1.34.9

7 months ago

1.34.8

7 months ago

1.34.7

7 months ago

1.34.6

7 months ago

1.34.5

7 months ago

1.34.4

7 months ago

1.34.3

7 months ago

1.34.2

7 months ago

1.34.1

7 months ago

1.33.8

7 months ago

1.33.7

7 months ago

1.33.6

7 months ago

1.32.9

7 months ago

1.32.2

7 months ago

1.32.0

7 months ago

1.31.0

7 months ago

1.3.3

8 months ago

1.3.2

8 months ago

1.3.1

8 months ago

1.21.4

8 months ago

1.21.3

8 months ago

1.21.2

8 months ago

1.21.0

8 months ago

1.20.0

8 months ago

1.19.9

8 months ago

1.19.7

8 months ago

1.19.6

8 months ago

1.19.5

8 months ago

1.19.45

8 months ago

1.19.44

8 months ago

1.19.43

8 months ago

1.19.42

8 months ago

1.19.41

8 months ago

1.19.4

8 months ago

1.19.32

8 months ago

1.19.3

8 months ago

1.19.0

8 months ago