C - 搜索/删除时出现 2-3 个树分段错误



我正在尝试实现 2-3 棵树,但在搜索要删除的节点时出现分段错误。代码如下:

p = root;
while (p!=NULL || p->k1!=kkey || p->k2!=kkey)
{
     if (kkey < p->k1)
        p = p->st;
     else if (kkey > p->k1 && kkey < p->k2)
        p = p->mid;
     else
        p = p->dr;
}

所以我正在尝试搜索包含 kkey 的节点。调试器告诉我,当我尝试检查是否找到键或我们仍在树中时,我遇到了分段错误。

您的while状况看起来非常可疑。

假设pNULL;while仍然会尝试取消引用p->k1并且会断位错误。

你的意思是说&&("和")而不是||("或")吗?

相关内容

  • 没有找到相关文章

最新更新