Nomnom Pumpernickle Muffins

    nodejs-bst

    1.0.6 • Public • Published

    nodejs-bst

    A fast and simple library for binary search tree data structures (BST) manipulation.

    Build Status npm version npm downloads

    Instalation

    To install the latest version using yarn:

    yarn add nodejs-bst
    

    Using npm:

    npm install --save nodejs-bst
    

    The Gist

    Instantiation

    // Import module
    const BST = require('nodejs-bst')
     
    // Success
    const emptyBst = new BST() // {}
    const singleBst = new BST(7) // { 7: [] }
    const multiBst = new BST([3, 6, 1, 9]) // { 3: [ { 1: [] }, { 6: [ {}, { 9: [] } ] } ] }
     
    // Failure
    const errBst1 = new BST('foo') // Error: Node constructor argument must be a single or array of numbers
    const errBst2 = new BST([3, 'foo']) // Error: Node constructor argument must be a single or array of numbers

    Append

    // Import module
    const BST = require('nodejs-bst')
     
    const bst = new BST()
     
    // Success
    bst.addNumber(4) // { 4: [] }
    bst.addMultiple([3, 7]) // { 4: [ { 3: [] }, { 7, [] } ] }
     
    // Failure
    bst.addNumber() // Error: The addNumber method number argument must be a number
    bst.addNumber('foo') // Error: The addNumber method number argument must be a number
    bst.addMultiple() // Error: The addMultiple method numbers argument must be an array of number
    bst.addMultiple(['foo', 'bar']) // Error: The addMultiple method numbers argument must be an array of number

    Removal

    // Import module
    const BST = require('nodejs-bst')
     
    const bst = new BST([5, 2, 1, 7, 9]) // { 5: [ { 2: [ { 1: [] }, {} ] }, { 7: [ {}, { 9: [] } ] } ] }
     
    // Success
    bst.removeNumber(2) // { 5: [ { 1: [] }, { 7: [ {}, { 9: [] } ] } ] }
    bst.removeMultiple([5, 7]) // { 9: [ { 1: [] }, {} ] }
     
    // Failure
    bst.removeNumber() // Error: The removeNumber method argument must be a number
    bst.removeNumber('foo') // Error: The removeNumber method argument must be a number
    bst.removeMultiple() // Error: The removeMultiple method argument must be an array
    bst.removeMultiple([4, 'bar']) // Error: The removeMultiple method argument must be an array

    Verify

    // Import module
    const BST = require('nodejs-bst')
     
    const bst = new BST(4)
     
    // Success
    bst.hasNumber(7) // False
    bst.hasNumber(4) // True
    bst.isFullBinary() // True
     
    // Failure
    bst.hasNumber() // Error: The hasNumber function argument must be a number
    bst.hasNumber('foo') // Error: The hasNumber function argument must be a number

    Inorder path

    // Import module
    const BST = require('nodejs-bst')
     
    const bst = new BST([2,15,7,4,9])
     
    // Inorder path
    bst.getInorderPath() // [ 2, 4, 7, 9, 15 ]

    Preorder path

    // Import module
    const BST = require('nodejs-bst')
     
    const bst = new BST([15,9,8,5,11,10,21,17,18,25,24,28])
     
    // Preorder path
    bst.getPreorderPath() // [ 15, 9, 8, 5, 11, 10, 21, 17, 18, 25, 24, 28 ]

    Postorder path

    // Import module
    const BST = require('nodejs-bst')
     
    const bst = new BST([15,9,8,5,11,10,21,17,18,25,24,28])
     
    // Postorder path
    bst.getPostorderPath() // [ 5, 8, 10, 11, 9, 18, 17, 24, 28, 25, 21, 15 ]

    Install

    npm i nodejs-bst

    DownloadsWeekly Downloads

    3

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    63.7 kB

    Total Files

    17

    Last publish

    Collaborators

    • avatar