An open API service indexing awesome lists of open source software.

https://github.com/hattima-tim/binary-search-tree

An implementation of a binary search tree in JavaScript
https://github.com/hattima-tim/binary-search-tree

algorithms-and-data-structures binary-search-tree javascript

Last synced: 9 months ago
JSON representation

An implementation of a binary search tree in JavaScript

Awesome Lists containing this project

README

          

# JavaScript Binary Search Tree

An implementation of a binary search tree data structure written in JavaScript.

Includes the following methods:

- `buildTree(array)` - takes an array of values and turns it into a balanced binary tree
- `insert(value)` - inserts a new node with the given value into the tree
- `deleteNode(value)` - removes the node holding the given value from the tree
- `find(value)` - returns the node holding the given value in the tree
- `levelOrder()` - traverses each node of the tree in level order
- `inorder()` - traverses each node of the tree inorder
- `preorder()` - traverses each node of the tree preorder
- `postorder()` - traverses each node of the tree postorder
- `height(value)` - returns the height of a node -- defined as the longest path between the node and a leaf node
- `depth(value)` - returns the depth of a node -- defined as the distance between the node and the root
- `isBalanced()` - returns true/false based on whether or not the tree is balanced
- `rebalance()` - rebalances the tree
- `prettyPrint()` - prints the tree in the console in a human reader friendly format

To see some of the methods in action, run the `script.js` file with the `node script.js` command. To see how the methods are supposed to work, check the test file.