Nothing's plumb meaningless

    binarysearchtree-js

    1.0.1 • Public • Published

    BinarySearchTree.js

    npm Travis build License

    Class to create Binary Search Trees

    Installation

    npm install binarysearchtree-js --save

    Default node structure

    {
      value: 10,  // some numeric value
      left: null, // node object or null
      right: null // node object or null
    }

    Usage

    const BinarySearchTree = require('binary-search-tree');
     
      // 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.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.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
     
      // 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
    )

    Install

    npm i binarysearchtree-js

    DownloadsWeekly Downloads

    6

    Version

    1.0.1

    License

    ISC

    Last publish

    Collaborators

    • schwsimon