#include<stdio.h>
#include<stdlib.h>
typedef struct BTreeNode BTNode;
struct BTreeNode
{
int value;
struct BTreeNode *left_child,*right_child;
};
int insert(int input_value, BTNode *head_node)
{
BTNode *temp,*head;
temp->value = input_value;
temp->left_child = NULL;
temp->right_child = NULL;
head = head_node;
// while(1)
{
if(head == NULL)
{
head = temp;
// break;
return 0;
}
if(temp->value > head->value)
{
head = head->right_child;
}
else if(temp->value < head->value)
{
head = head->left_child;
}
else
{
// break;
}
printf("Inserted successfully\n");
}
return 1;
}
int main()
{
BTNode *root=NULL;
insert(23,root);
}
我試圖在二進制搜索樹中插入一個新值。 在下面的代碼中,我在「temp-> left_child = NULL;」處得到分段錯誤。行插入功能。我不明白爲什麼我得到那個人可以幫我嗎?分段錯誤當分配NULL到BinaryTree中的子節點時
由於我們在工作的指針我們不能用根主爲根永遠因爲我們正在插入考慮根作爲二叉樹根的值? – sr116
我的意思是說,指針上做的更改將具有全局scope.so,我們是否需要再次返回根? – sr116