二叉树插入元素num的递归版本,在上一篇算法导论第十二章——二叉查找树的C++代码实现中,实现了二叉树插入元素的非递归版本,本代码可以直接放入到上一篇的BinTree.h的头文件中。
代码如下:
//递归版本
void ReInsert(BinTreeNode* node,BinTreeNode* start)
{
BinTreeNode* p=start;
if(p->key==node->key)
{
cout<<"the "<<node->key<<"has exist!"<<endl;
return ;
}
else if(p->key>node->key)
{
if(p->left==NULL)
{
p->left=node;
return ;
}
ReInsert(node,p->left);
}
else
{
if(p->right==NULL)
{
p->right=node;
return ;
}
ReInsert(node,p->right);
}
}
void RecInsert(int num)
{
BinTreeNode* node=new BinTreeNode(num);
if(root==NULL)
{
root=node;
return ;
}
ReInsert(node,root);
}