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
「二叉樹」和「二叉搜索樹」有什麼區別? –