二叉树代码错误
Binary tree code error
我正在尝试编写代码将元素插入二叉树而不 recursion.But 我面临的问题是每次我尝试插入一个节点时,它都没有被插入,树也没有增长为 expected.Only 第一个元素保留在树中。
void insert(struct node **head1,int data1)
{
struct node *temp1,*temp;
temp=*head1;
struct node *datatemp,*prevtemp;
while(temp!=NULL)
{
if(temp->data < data1)
{
temp=temp->right;
}
else if(temp->data > data1)
{
temp=temp->left;
}
}
datatemp=(struct node *)malloc(sizeof(struct node));
datatemp->data=data1;
datatemp->right=NULL;
datatemp->left=NULL;
temp=datatemp;
}
请帮忙..我试过调试但我找不到逻辑中的错误。
此处temp=datatemp;
设置函数中的局部指针指向新分配的节点。
但是一旦函数存在,那个局部就消失了,你的内存就会泄漏。您没有修改找到的节点。
我正在尝试编写代码将元素插入二叉树而不 recursion.But 我面临的问题是每次我尝试插入一个节点时,它都没有被插入,树也没有增长为 expected.Only 第一个元素保留在树中。
void insert(struct node **head1,int data1)
{
struct node *temp1,*temp;
temp=*head1;
struct node *datatemp,*prevtemp;
while(temp!=NULL)
{
if(temp->data < data1)
{
temp=temp->right;
}
else if(temp->data > data1)
{
temp=temp->left;
}
}
datatemp=(struct node *)malloc(sizeof(struct node));
datatemp->data=data1;
datatemp->right=NULL;
datatemp->left=NULL;
temp=datatemp;
}
请帮忙..我试过调试但我找不到逻辑中的错误。
此处temp=datatemp;
设置函数中的局部指针指向新分配的节点。
但是一旦函数存在,那个局部就消失了,你的内存就会泄漏。您没有修改找到的节点。