gpt4 book ai didi

c - 从 C 中的 BST 中删除

转载 作者:行者123 更新时间:2023-11-30 21:24:55 24 4
gpt4 key购买 nike

我正在尝试在 BST 中创建删除函数。当我尝试删除指针时,出现此错误。 Click to see the image

void delete(Node** root, int data) {
if((*root) == NULL)
return;
else if(data < (*root)->data)
delete(&(*root)->left, data);
else if(data > (*root)->data)
delete(&(*root)->right, data);
else {
printf("%d\n", (*root)->data);
// case 1
if((*root)->left == NULL && (*root)->right == NULL) {
free((*root));
printf("wssal");
}
}

}

Problem view

 [1]: http://i.stack.imgur.com/42K5L.png

最佳答案

您的delete函数不会更新树结构以反射(reflect)删除的节点不再位于树中的事实。因此,您将离开树,其中包括指向不再存在的节点的指针。

关于c - 从 C 中的 BST 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34008810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com