插入操作:
bintree insert(bintree t, int data)
{
if(!t)
{ bintree gg;
gg = (bintree)malloc(sizeof(struct node));
gg->data = data;//不能写成NULL
gg->left = gg->right = NULL;
return gg;
}
else if(data > t->data)
t->right = insert(t->right, data);
else if(data<t->data)
t->left = insert(t->left, data);
return t;
}
删除:
bintree deleted(bintree t, int data)
{
if(t->data == data)
{
if(t->left != NULL&&t->right != NULL)//两个孩子都不为空
{
bintree temp = findmin(t->right);//找到右子树最小值
t->data = temp->data ;
t->right = deleted(t->right, t->data);
}
else
{
bintree temp = t;
if(t->left)
t = t->left;
if(t->right)
t = t->right;
free(temp);
}
}
else if(data > t->data)
t->right = deleted(t->right