Extend Binary Search Trees.

{
extra: {},
value: 10, // some numeric value
left: null, // node object or null
right: null // node object or null
}
const BinarySearchTree = require('bste.js');
// traversal order type constants
BinarySearchTree.IN_ORDER;
BinarySearchTree.PRE_ORDER;
BinarySearchTree.POST_ORDER;
BinarySearchTree.LAYER_ORDER;
const bst = new BinarySearchTree;
bst.root; // the root node
bst.count; // the node count
bst.push(10); // add a node with the value 10
bst.push(2,21,32,44); // add multiple nodes at once
bst.push("1", [], null) // Non-numeric inputs are ignored
bst.push(
[22, {path: "22Frame.jpeg"}],
[13, { path: "13Frame.jpeg" }],
[2, { path: "2Frame.jpeg" }]
);
bst.find(10); // returns the node with the value 10
bst.find(1); // returns false if node does not exist
bst.min(); // returns the lowest value
bst.min(true); // returns the node with the lowest value
bst.max(); // returns the highest value
bst.max(true); // returns the node with the highest value
bst.traverseExtra(BinarySearchTree._IN_ORDER); // Traverse the tree
bst.traverse(BinarySearchTree._IN_ORDER); // Traverse the tree
bst.traverse(BinarySearchTree._PRE_ORDER); // and return an Array
bst.traverse(BinarySearchTree._POST_ORDER); // with the node values
bst.traverse(BinarySearchTree._LAYER_ORDER); // in the given order
let i = 0;
bst.setTimerHandler(()=>{
i = 22;
}, 2);
bst.push(10, 7, 3, 14, 4, 18, 16, 1, 8, 22, 11);
// Returns a new instance of BinarySearchTree
// from any tree data with any given structure
// by providing the root node and its node key names
BinarySearchTree.create(
root, // root node
'myData', // value property name
'leftNode', // left node property name
'rightNode' // right node property name
);
// checks if the input tree is a valid Binary Search Tree
// node.left < node.right == true
BinarySearchTree.isBST(bst) // true
// also possible with different node structures
BinarySearchTree.isBST(
root, // root node
'myData', // value property name
'leftNode', // left node property name
'rightNode' // right node property name
)