请告诉我如何创建二叉树。我搜索了谷歌,但我发现二进制搜索树的每个地方。我的代码。
bool createTree(node* Tree,int d)
{
bool ret_val=FALSE;
if(Tree->d==-1)
{
Tree->d=d;
return TRUE;
}
else
{
node* temp=(node*)malloc(sizeof(node*));
if (temp==NULL)
return FALSE;
temp->l=NULL;
temp->r=NULL;
temp->d=d;
if(Tree->l==NULL)
{
Tree->l=temp;
return TRUE;
}
else if(Tree->r==NULL)
{
Tree->r=temp;
return TRUE;
}
else
{
ret_val=createTree(Tree->l,d);
if(ret_val)
return TRUE;
else
return createTree(Tree->r,d);
}
return FALSE;
}
}
执行后,您可以看到该值已分配给左侧树,并且它会一直显示在树的左侧部分。 请帮我填写二叉树。
答案 0 :(得分:1)
这个错误的
node* temp=(node*)malloc(sizeof(node*));
应该是
node* temp=(node*)malloc(sizeof(node));
但是在C ++代码中,编写
会更好node* temp = new node;
更简单,所以你不太可能犯错误