#include"bstree.cpp"

template<class T>
class great_tree : public bstree<T>
{
public:
	int great(T item);
};

template<class T>
int great_rec(node<T> *n,T item)
{
	int sum=0;
	if(n->is_leaf())
	{
		if(n->item>item) return 1;
		else return 0;
	}
	else
	{
		if(n->lptr!=0) sum += great_rec(n->lptr,item);
		if(n->rptr!=0) sum += great_rec(n->rptr,item);
	}
	if(n->item>item) sum++;
	return sum;
}

template<class T>
int great_tree<T>::great(T item)
{
	return great_rec(root_ptr,item);
}
