nodejs-bst
v1.0.6
Published
Library for binary search tree structures (BST) manipulation
Downloads
4
Maintainers
Readme
nodejs-bst
A fast and simple library for binary search tree data structures (BST) manipulation.
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 ]