// file bstree.cpp
 
#include 
#include 
#include "bstree.h"
 
 
BSTree::BSTree():Tree(){}
 
BSTree::BSTree(Type x):Tree(x){}
 
int BSTree::isempty()
{
        return Tree::isempty();
}
 
void BSTree::print()
{
        Tree::print(2);
}
 
int BSTree::myfind(Type x, Tnode * &q, Tnode * &t)
{
        q = NULL;
 
        if (isempty()) return 0;
 
        t = root;
        
        while (t && x != t->getinfo()){
               q = t;
               if (x < t->getinfo())
                       t = t->getleft();
               else
                       t = t->getright();
        }
        
        if (t) return 1;
        else return 0;
}
 
int BSTree::find(Type x)
{
        Tnode *t, *q;
        return myfind(x,q,t);
}
 
void BSTree::insert(Type x)
{
        Tnode *t, *q;
 
        if (myfind(x,q,t))
               return;
 
        if (!q) {
               makeroot(x);
               return;
        }
 
        if (x < q->getinfo())
               insertleft(q,x);
        else
               insertright(q,x);
}