qq_36402634 2017-11-21 15:23
浏览 891

二叉搜索树删除结点问题

//删除结点 ,从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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥15 c++头文件不能识别CDialog
    • ¥15 Excel发现不可读取的内容
    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题