qq_36402634
2017-11-21 15:23二叉搜索树删除结点问题
//删除结点 ,从p开始搜索含x的结点,通过p返回新根
template
bool BST::Remove(K x,BSTNode* &p)
{
BSTNode *temp;
if(p!=NULL)
{
if(xdata) Remove(x,p->leftChild);
else if(x>p->data) Remove(x,p->rightChild);
else if(p->leftChild!=NULL&&p->rightChild!=NULL)
{
temp=p->rightChild;
while(temp->leftChild!=NULL) temp=temp->leftChild;
p->data=temp->data;
Remove(p->data.number,p->rightChild);
}
else
{
temp=p;
if(p->leftChild==NULL) p=p->rightChild;
else p=p->leftChild;
delete temp;
return true;
}
}
return false;
}
殷人昆的数据结构上的代码
问题1:无论删除是否成功都返回false
问题2:为什么不能用BSTNode* 作参数类型
- 点赞
- 回答
- 收藏
- 复制链接分享
0条回答
为你推荐
- 二叉搜索树删除结点时指针问题(邓俊辉数据结构)
- c++
- 2个回答
- (C语言)在二叉搜索树的学习时遇到了问题,求大佬帮忙看看
- c语言
- c++
- 2个回答
- C语言实现:二叉排序树结点的删除
- 2个回答