1.52.0 • Published 3 months ago

bst-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 BST (Binary Search 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 bst-typed --save

yarn

yarn add bst-typed

methods

npm.io

snippet

TS

import {BST, BSTNode} from 'data-structure-typed';
// /* or if you prefer */ import {BST, BSTNode} from 'bst-typed';

const bst = new BST();
bst instanceof BST;                    // true
bst.add(11);
bst.add(3);
const idsAndValues = [15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5];
bst.addMany(idsAndValues);
bst.root instanceof BSTNode;           // true

if (bst.root) bst.root.id;             // 11

bst.size;                              // 16

bst.has(6);                            // true

const node6 = bst.get(6);
node6 && bst.getHeight(6);             // 2
node6 && bst.getDepth(6);              // 3

const nodeId10 = bst.get(10);
nodeId10?.id;                          // 10

const nodeVal9 = bst.get(9, 'val');
nodeVal9?.id;                          // 9


const leftMost = bst.getLeftMost();
leftMost?.id;                          // 1

const node15 = bst.get(15);
const minNodeBySpecificNode = node15 && bst.getLeftMost(node15);
minNodeBySpecificNode?.id;             // 12

const subTreeSum = node15 && bst.subTreeSum(15);
subTreeSum;                            // 70

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

node15 instanceof BSTNode;             // true

const node11 = bst.get(11);
node11 instanceof BSTNode;             // true

const dfsInorderNodes = bst.DFS('in', 'node');
dfsInorderNodes[0].id;                 // 1
dfsInorderNodes[dfsInorderNodes.length - 1].id;            // 16

bst.perfectlyBalance();
bst.isPerfectlyBalanced();                                  // true

const bfsNodesAfterBalanced = bst.BFS('node');
bfsNodesAfterBalanced[0].id;                                // 8);
bfsNodesAfterBalanced[bfsNodesAfterBalanced.length - 1].id; // 16

const removed11 = bst.remove(11, true);
removed11 instanceof Array;                                 // true


if (removed11[0].deleted) removed11[0].deleted.id;          // 11

bst.isAVLBalanced();                                        // true

bst.getHeight(15);                                          // 1

const removed1 = bst.remove(1, true);
removed1 instanceof Array; // true

if (removed1[0].deleted) removed1[0].deleted.id;            // 1

bst.isAVLBalanced();                                        // true

bst.getHeight();                                            // 4

const removed4 = bst.remove(4, true);
removed4 instanceof Array;                                   // true

if (removed4[0].deleted) removed4[0].deleted.id;            // 4
bst.isAVLBalanced();                                        // true
bst.getHeight();                                            // 4

const removed10 = bst.remove(10, true);

if (removed10[0].deleted) removed10[0].deleted.id;           // 10
bst.isAVLBalanced();                                         // false
bst.getHeight();                                             // 4

const removed15 = bst.remove(15, true);

if (removed15[0].deleted) removed15[0].deleted.id;           // 15

bst.isAVLBalanced();                                         // true
bst.getHeight();                                             // 3

const removed5 = bst.remove(5, true);

if (removed5[0].deleted) removed5[0].deleted.id;              // 5

bst.isAVLBalanced();                                          // true
bst.getHeight();                                              // 3

const removed13 = bst.remove(13, true);
if (removed13[0].deleted) removed13[0].deleted.id;            // 13
bst.isAVLBalanced();                                          // true
bst.getHeight();                                              // 3

const removed3 = bst.remove(3, true);
if (removed3[0].deleted) removed3[0].deleted.id;               // 3
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed8 = bst.remove(8, true);
if (removed8[0].deleted) removed8[0].deleted.id;               // 8
bst.isAVLBalanced();                                           // true
bst.getHeight();                                               // 3

const removed6 = bst.remove(6, true);
if (removed6[0].deleted) removed6[0].deleted.id;               // 6
bst.remove(6, true).length;                                    // 0
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed7 = bst.remove(7, true);
if (removed7[0].deleted) removed7[0].deleted.id;               // 7
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed9 = bst.remove(9, true);
if (removed9[0].deleted) removed9[0].deleted.id;               // 9
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed14 = bst.remove(14, true);
if (removed14[0].deleted) removed14[0].deleted.id;             // 14
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 2

bst.isAVLBalanced();                                           // false

const bfsIDs = bst.BFS();
bfsIDs[0];                                                     // 2
bfsIDs[1];                                                     // 12
bfsIDs[2];                                                     // 16

const bfsNodes = bst.BFS('node');
bfsNodes[0].id;                                                // 2
bfsNodes[1].id;                                                // 12
bfsNodes[2].id;                                                // 16

JS

const {BST, BSTNode} = require('data-structure-typed');
// /* or if you prefer */ const {BST, BSTNode} = require('bst-typed');

const bst = new BST();
bst instanceof BST;                    // true
bst.add(11);
bst.add(3);
const idsAndValues = [15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5];
bst.addMany(idsAndValues);
bst.root instanceof BSTNode;           // true

if (bst.root) bst.root.id;             // 11

bst.size;                              // 16

bst.has(6);                            // true

const node6 = bst.get(6);
node6 && bst.getHeight(6);             // 2
node6 && bst.getDepth(6);              // 3

const nodeId10 = bst.get(10);
nodeId10?.id;                          // 10

const nodeVal9 = bst.get(9, 'val');
nodeVal9?.id;                          // 9


const leftMost = bst.getLeftMost();
leftMost?.id;                          // 1

const node15 = bst.get(15);
const minNodeBySpecificNode = node15 && bst.getLeftMost(node15);
minNodeBySpecificNode?.id;             // 12

const subTreeSum = node15 && bst.subTreeSum(15);
subTreeSum;                            // 70

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

node15 instanceof BSTNode;             // true

const node11 = bst.get(11);
node11 instanceof BSTNode;             // true

const dfsInorderNodes = bst.DFS('in', 'node');
dfsInorderNodes[0].id;                 // 1
dfsInorderNodes[dfsInorderNodes.length - 1].id;            // 16

bst.perfectlyBalance();
bst.isPerfectlyBalanced();                                  // true

const bfsNodesAfterBalanced = bst.BFS('node');
bfsNodesAfterBalanced[0].id;                                // 8);
bfsNodesAfterBalanced[bfsNodesAfterBalanced.length - 1].id; // 16

const removed11 = bst.remove(11, true);
removed11 instanceof Array;                                 // true


if (removed11[0].deleted) removed11[0].deleted.id;          // 11

bst.isAVLBalanced();                                        // true

bst.getHeight(15);                                          // 1

const removed1 = bst.remove(1, true);
removed1 instanceof Array; // true

if (removed1[0].deleted) removed1[0].deleted.id;            // 1

bst.isAVLBalanced();                                        // true

bst.getHeight();                                            // 4

const removed4 = bst.remove(4, true);
removed4 instanceof Array;                                   // true

if (removed4[0].deleted) removed4[0].deleted.id;            // 4
bst.isAVLBalanced();                                        // true
bst.getHeight();                                            // 4

const removed10 = bst.remove(10, true);

if (removed10[0].deleted) removed10[0].deleted.id;           // 10
bst.isAVLBalanced();                                         // false
bst.getHeight();                                             // 4

const removed15 = bst.remove(15, true);

if (removed15[0].deleted) removed15[0].deleted.id;           // 15

bst.isAVLBalanced();                                         // true
bst.getHeight();                                             // 3

const removed5 = bst.remove(5, true);

if (removed5[0].deleted) removed5[0].deleted.id;              // 5

bst.isAVLBalanced();                                          // true
bst.getHeight();                                              // 3

const removed13 = bst.remove(13, true);
if (removed13[0].deleted) removed13[0].deleted.id;            // 13
bst.isAVLBalanced();                                          // true
bst.getHeight();                                              // 3

const removed3 = bst.remove(3, true);
if (removed3[0].deleted) removed3[0].deleted.id;               // 3
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed8 = bst.remove(8, true);
if (removed8[0].deleted) removed8[0].deleted.id;               // 8
bst.isAVLBalanced();                                           // true
bst.getHeight();                                               // 3

const removed6 = bst.remove(6, true);
if (removed6[0].deleted) removed6[0].deleted.id;               // 6
bst.remove(6, true).length;                                    // 0
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed7 = bst.remove(7, true);
if (removed7[0].deleted) removed7[0].deleted.id;               // 7
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed9 = bst.remove(9, true);
if (removed9[0].deleted) removed9[0].deleted.id;               // 9
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 3

const removed14 = bst.remove(14, true);
if (removed14[0].deleted) removed14[0].deleted.id;             // 14
bst.isAVLBalanced();                                           // false
bst.getHeight();                                               // 2

bst.isAVLBalanced();                                           // false

const bfsIDs = bst.BFS();
bfsIDs[0];                                                     // 2
bfsIDs[1];                                                     // 12
bfsIDs[2];                                                     // 16

const bfsNodes = bst.BFS('node');
bfsNodes[0].id;                                                // 2
bfsNodes[1].id;                                                // 12
bfsNodes[2].id;                                                // 16

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

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.3

5 months ago

1.48.2

5 months ago

1.48.1

5 months ago

1.48.0

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

6 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

7 months ago

1.36.9

7 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

8 months ago

1.31.0

8 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.4

8 months ago

1.19.3

8 months ago

1.19.0

8 months ago