删除的方式
-基于数据元素值的删除
·SharedPointer<Tree<T>>remove(const T& value)
-基于结点的删除
·SharedPointer<Tree <T>>remove(TreeNode<T>* node)
删除操作功能的定义
-void remove(BTreeNode<T>* node,BTree<T>* &ret)
·将node为根结点的子树从原来的二叉树中删除
·ret作为子树返回(ret指向堆空间中的二叉树对象)
删除功能函数的实现
virtual void remove(BTreeNode<T>* node,BTree<T>* &ret)
{
ret = new BTree<T>();
if(ret == NULL)
{
//抛出异常
}
else
{
if(root() == node)
{
this->m_root = NULL;
}
else
{
B