27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ## 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
 | |
| 
 | |
| 
 | |
| 
 | |
| 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
 |