关于二叉树的问题
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
typedef struct tree
{
int data;
struct tree *lchild;
struct tree *rchild;
}tree;
void BuildTree(tree *Btree,int Data)
{
tree *Temp;
tree *NewTree;
tree *BackTemp;
if(Btree!=NULL)
{
Temp=Btree;
while(Temp!=NULL)
{
BackTemp=Temp;
if(Data<(Temp->data))
{
Temp=Temp->lchild;
}
else
{
Temp=Temp->rchild;
}
}
if(Data<(BackTemp->data))
{
NewTree=(tree *)malloc(sizeof(tree));
NewTree->data=Data;
NewTree->lchild=NULL;
NewTree->rchild=NULL;
BackTemp->lchild=NewTree;
}
else
{
NewTree=(tree *)malloc(sizeof(tree));
NewTree->data=Data;
NewTree->lchild=NULL;
NewTree->rchild=NULL;
BackTemp->rchild=NewTree;
}
}
else
{
Btree=(struct tree *)malloc(sizeof(struct tree));
Btree->data=Data;
Btree->lchild=NULL;
Btree->rchild=NULL;
}
}
void DisplayTree(tree *Btree)
{
if(Btree!=NULL)
{
printf("%d ",Btree->data);
DisplayTree(Btree->lchild);
DisplayTree(Btree->rchild);
}
else
{
printf("This is NULL Tree!!!");
}
}
int main(int argc,char **argv)
{
tree *Root=NULL;
BuildTree(Root,10);
BuildTree(Root,43);
BuildTree(Root,1);
BuildTree(Root,34);
BuildTree(Root,75);
DisplayTree(Root);
return 0;
}
为什么我的这个程序无法正确建立树和偏历呢?