An implementation of a Binary Search Tree data structure written in JavaScript while applying Test-Driven Development (TDD).
Includes the following methods:
insert(value)
- inserts a new node with the given value into the treeremove(value)
- removes the node holding the given value from the treefind(value)
- returns the node holding the given value in the treelevelOrder()
- traverses each node of the tree in level orderinorder()
- traverses each node of the tree inorderpreorder()
- traverses each node of the tree preorderpostorder()
- traverses each node of the tree postorderheight()
- returns the height of a node -- defined as the longest path between the node and a leaf nodedepth()
- returns the depth of a node -- defined as the distance between the node and the rootisBalanced()
- returns true/false based on whether or not the tree is balancedrebalance()
- rebalances the treeprettyPrint
- prints the tree in the console in a human reader friendly format
Also included is a small driver script that tests most of the tree's functionality.
In order to run the tests you should do the following:
-
Clone this project:
git clone https://github.com/GDimitroff/binary-search-tree.git;
-
Once you have cloned this project, you can install the required dependencies by using
npm test
in the terminal. -
Type
npm test
in the terminal to run the tests.