#include "binsrch.hpp"

template <class type>
void bin_search_tree<type>::searcher(bnode<type>*& rooty, type& item, int& found)
{
	if(!rooty) return;
	if(rooty->item==item)
	{
		found=1;
		item=rooty->item;
	}
	else if (rooty->item > item)
		searcher(rooty->left->root,item,found);
	else
		searcher(rooty->right->root,item,found);
}
template <class type>
void bin_search_tree<type>::search(type& item, int& found)
{
	found = 0;
	searcher(root,item,found);
}

template <class type>
void	insert_at_root(bnode<type>*& root, type item)
{
	root = new bnode<type>;
	root->item = item;
}

template <class type>
void bin_search_tree<type>::inserter(bnode<type>*& rooty, type item)
{
	if(!rooty)
		insert_at_root(rooty,item);
	else if (rooty->item > item)
		inserter(rooty->left->root,item);
	else
		inserter(rooty->right->root,item);
}


template <class type>
void bin_search_tree<type>::insert(type item)
{
	inserter(root,item);
}
