c - 搜索/删除时出现 2-3 棵树分割错误

标签 c segmentation-fault binary-search-tree

我正在尝试实现 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 条件看起来非常可疑。

假设 pNULLwhile 仍将尝试取消引用 p->k1 并会出现段错误。

您是想说 &&(“和”)而不是 ||(“或”)吗?

关于c - 搜索/删除时出现 2-3 棵树分割错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20813041/

相关文章:

c - C 中的奇怪/随机段错误

java - 删除二叉树中的值

c++ - 替罪羊树的上限

c - 标题/包含守卫不起作用?

c - 用 C 追加到文本文件

c - memcpy() 更改不应触及的内存

c++ - 从链表 C++ 中删除特定值

c - 我的计数排序有段错误

java - 更改变量也会更改先前分配的变量

c - 我得到函数 strncmp 的隐式声明