0
请告诉我如何创建二叉树。我搜索谷歌,但每一个我找到二进制搜索tree.here是我的代码。如何创建二叉树(非二叉搜索树)
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;
}
}
执行后,您可以看到该值分配给左侧的树,并且它继续前往树的左侧部分。 请帮我填补我的二叉树。
究竟是什么问题?你得到错误的输出?那么期望的输出是多少?如果你想让我们帮你弄清楚有什么不对,请给出一些细节。 – StoryTeller
也许这个代码序列不能按照你想要的方式工作? TEMP-'> 1 = NULL; TEMP-> R = NULL;如果(树形>升== NULL)...; else if(Tree-> r == NULL)...;否则ret_val = createTree(Tree-> l,d); ...' – mah
“二叉树”和“二叉搜索树”有什么区别? –