background image

            BinaryNode *right;

            BinaryNode():element(0),left(NULL),left(NULL){}

            BinaryNode(const Comparable &theElement,BinaryNode *It,BinaryNode *rt)

                : element(theElement),left(It),right(rt){}

        }BN;

    private:

        BinaryNode *root;

        void insert( const Comparable & x,BinaryNode * & t ) const;

        void remove( const Comparable & x,BinaryNode * & t ) const;

        BinaryNode * findMin( BinaryNode *t ) const;

        BinaryNode * findMax( BinaryNode *t ) const;

        bool contains( const Comparable & x, BinaryNode *t ) const;

        void makeEmpty( BinaryNode * & t );

        void printTree( BinaryNode * t,ostream &) const;

        BinaryNode * clone( BinaryNode * t) const;

};

template<typename Comparable>

BinarySearchTree<Comparable>::BinarySearchTree(){

    root=NULL;

}

template<typename Comparable>

bool BinarySearchTree<Comparable>::isEmpty()const

{

    return root==NULL;

}