## Binary Search Tree Wikipedia on [Binary Search Tree](http://en.wikipedia.org/wiki/Binary_search_tree) A binary search tree is a node based binary tree data structure. It is ordered in a particular way, where all values to the left of a node must be lower and all values to the right of a node must be higher relative to the root node aka the top node #### Visualization ![binary search tree](http://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Binary_search_tree.svg/200px-Binary_search_tree.svg.png) Like the linked list, each node holds pointer to other nodes. In this case, each node has two pointers - a left and a right. #### Implementation You will create two classes: - `TreeNode` - instantiate it with a value, as well as properties named left and right to hold other nodes. - `Tree` - instantiate it with a root node. #### Methods You will create the following methods for your Tree class: - `preorder`: this will traverse the tree and print every node's value - `search`: a recursive function that searches the tree for the value. Returns True if node exists, else returns False - `insert`: this should correctly insert a TreeNode in proper place (i.e.) - `inorder`: function that prints every node's value **in order** from lowest to highest