二进制搜索树操作程序错误:分割故障(核心倾倒)
Binary Search Tree operations program error : Segmentation fault (core dumped)
我正在学习二进制搜索树(BST(。在BST插入中,有序,预订遍历,后订单遍历操作正常,但是在删除后,会出现一些问题。我从这里学习了BST删除操作:https://gist.github.com/mycodeschool/9465A188248B624AFDBF。我已经编写了相同的程序,但是在删除代替删除元素后,它显示了0。有时在插入操作中显示分割故障(核心倾倒(。我的代码在这里:(我服用了3个案例,其中我们要删除的节点有1.1.1。1个孩子3. 2个孩子(
(void Inorder(struct node *tree)
{
if(tree == NULL)
{
return;
}
Inorder(tree->left);
cout<<tree->data<<" ";
Inorder(tree->right);
}
node* FindMin(struct node *tree)
{
while(tree->left != NULL)
{
tree=tree->left;
}
return tree;
}
node* Delete(struct node *tree,int data)
{
if(tree == NULL)
{
return tree;
}
else if(tree->data < data)
{
tree->right=Delete(tree->right,data);
}
else if(tree->data > data)
{
tree->left=Delete(tree->left,data);
}
else
{
if(tree->right==NULL && tree->left == NULL)
{
delete tree;
tree==NULL;
}
else if(tree->right==NULL)
{
struct node *newnode = tree;
tree=tree->left;
delete newnode;
}
else if(tree->left == NULL)
{
struct node *newnode = tree;
tree=tree->right;
delete newnode;
}
else
{
struct node *newnode = FindMin(tree->right);
tree->data=newnode->data;
tree->right=Delete(tree->right,newnode->data);
}
}
return tree;
}
delete tree;
tree==NULL;
在这里,应将树设置为null
delete tree;
tree = NULL;
相关文章:
- 分段故障(核心转储)-不知道为什么
- 分段故障核心使用 IF流转储
- 分割故障:核心倾倒C 矢量对字符串:
- C 2D数组导致分割故障(核心倾倒)
- 分割故障(核心倾倒) - 材料函数
- 二进制搜索树操作程序错误:分割故障(核心倾倒)
- C :分割故障(核心倾倒)问题
- 我如何修复分段故障(核心转储)
- 分段故障;核心倾倒在我的代码C 中
- QuickSort分割故障(核心倾倒)
- 试图实现BST时,将C 的分割故障(核心倾倒)
- C 比较文本文件和分段故障(核心倾倒)
- 分段故障(核心倾倒)
- 分段故障(核心倾倒)
- 分割故障(核心转储)C
- 分段故障(核心倾倒)错误未解决
- 分段故障核心转储,矢量嵌套在矢量中
- 分割故障(核心倾倒)在使用地图存储有序数据时
- 分段故障(核心倾倒)变量分配
- CORBA C++/Java应用程序中服务器端的分段故障(核心转储)