New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

binarysearchtree-js

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

binarysearchtree-js

Javascript class to create & traverse Binary Search Trees

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
Maintainers
1
Weekly downloads
 
Created
Source

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
)

Keywords

FAQs

Package last updated on 29 Nov 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc