Jsbt stands for Javascript Binary Tree, it is one solution to the popular binary tree problem
For Installation With NPM
npm i @yoloftw/jsbt
Below is the basic usage of Javascript Binary Tree
Create binary tree object
const { BinaryTree } = require('jsbt');
//create new tree with root value of "A"
let tree = new BinaryTree("A")
Insert into binary tree
//insert into the tree at parent "1" with value of "AA" on any side
tree.insert("1", "AA")
An object of {left, right} can be passed to specify which side to insert on
//insert into the tree at parent "1" with value of "AB" on the right side
tree.insert("1", "AB", {right: true})
//insert into the tree at parent "1" with value of "AA" on the left side
tree.insert("1", "AA", {left: true})
//insert into the tree at parent "11" with value of "AAA" on the left side
tree.insert("11", "AAA", {left: true})
Get binary tree node from value.
If multiple nodes have the same value will only return first
//get node with value "AB"
tree.getNodeFromValue("AB")
//expected output: Node {key: '12', value: 'AB', parent: '1', left: null, right: null}
//get node with value "ABBA"
tree.getNodeFromValue("ABBA")
//expected output: undefined
Get binary tree node from key.
//get node with key "12"
tree.getNodeFromKey("12")
//expected output: Node {key: '12', value: 'AB', parent: '1', left: null, right: null}
//get node with key "121212"
tree.getNodeFromKey("121212")
//expected output: undefined
return true or false if node is a leaf
//get node with key "12"
tree.getNodeFromKey("12").leaf
//expected output: true
//get node with key "11"
tree.getNodeFromKey("11").leaf
//expected output: false
return number of nodes in binary tree
//get tree size including root node
tree.size
//expected output: 4
return number of nodes in the longest route
//get longest route of nodes
tree.maxDepth
//expected output: 3