我正在尝试实现 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 的节点。调试器告诉我,我在尝试检查是否找到 key 或我们仍在树中时出现了段错误。
最佳答案
您的 while
条件看起来非常可疑。
假设 p
是 NULL
; while
仍将尝试取消引用 p->k1
并会出现段错误。
您是想说 &&
(“和”)而不是 ||
(“或”)吗?
关于c - 搜索/删除时出现 2-3 棵树分割错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20813041/