이진 트리를 어떻게 만들 수 있습니까? 나는 구글을 통해 검색했지만 모든 바이너리 검색 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-> l = NULL; temp-> r = NULL; if (Tree-> l == NULL) ...; else if (Tree-> r == NULL) ...; else ret_val = createTree (Tree-> l, d); ... ' – mah
"이진 트리"와 "이진 검색 트리"의 차이점은 무엇입니까? –