二进制搜索插入中的分割错误
Segmentation Fault in binary search insertion c++
在二叉搜索树中插入值时出现分割错误。这是黑客级别的问题,所以只有这个方法必须编写这是我写的
typedef struct node
{
int data;
node * left;
node * right;
}node;
node * insert(node * root, int value)
{
node* temp = root;
node* temp1 = new node();
node* prev = NULL ;
while(temp != NULL){
prev= temp;
if(value >= temp->data)
temp = temp->right;
else
temp = temp->left;
}
temp1->data = value;
temp1->left = NULL;
temp1->right = NULL;
if(prev->data >= value)
prev->left = temp1;
else
prev->right = temp1;
return root;
}
我不明白为什么这段代码给我分段错误。
欢迎提出建议
如果可以使用递归简化代码,就没有必要使代码变得复杂。
node * insert(node * root, int value)
{
if(root==NULL)
{
root=new node;
root->data=value;
root->left=NULL;
root->right=NULL;
return root;
}
else if(root->data>value)
{
root->left=insert(root->left,value);
return root;
}
else
{
root->right=insert(root->right,value);
return root;
}
}
您没有检查root == NULL
相关文章:
- C++映射分割错误(核心转储)
- 由cin中的字符串中未捕获空白引起的分割错误
- 删除映射和分割错误中的一个过去结束元素
- 在指向函数中读取变量时出现分割错误
- 在链表中的第 n 位插入显示分割错误
- 较高值 n 的分割错误(例如 n=999997)
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 分割错误:向量中的擦除功能
- 向量向量的分割错误
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 分割错误 11:尝试使用 cin 输入 B[1] 时
- 集合布局上的 Qt 分割错误
- 高达20亿的筛子会产生分割错误
- 对向量使用推回函数时的分割错误
- 绘制精灵会导致分割错误
- 将矢量的整数内容打印为字符串会导致分割错误
- 分割错误:使用向量时为 11 c++
- 结构的分割错误错误