我正在尝试将节点插入二叉搜索树 在左子树中插入节点没有问题 但是在右子树中插入一个节点会产生空指针异常。
第一次插入节点正常工作但是当我尝试在根的右侧部分插入一个新节点时,我发现root已经被赋予了一些垃圾值,而在遍历n时会打印出空指针异常。
typedef struct tree
{
int elt;
struct tree *left,*right;
}T;
T *RT=null;
void insert()
{
int n;
T *move,*temp,*back;
printf("\nEnter an element: ");
scanf("%d",&n);
temp=(T *)malloc(sizeof(T *));
temp->left=NULL;
temp->right=NULL;
temp->elt=n;
if(RT==NULL)
RT=temp;
else
{
move=RT;
while(move!=NULL)
{
back=move;
if(move->elt>=n)
move=move->left;
else if(move->elt<n)
move=move->right;
}
if(back->elt>=n)
back->left=temp;
else
back->right=temp;
}
printf("%d %d %d",RT->elt,RT->left->elt,RT->right->elt);
}