您的位置:首页 > 其它

关于二叉树建立的几种方法

2017-11-25 21:39 281 查看
1.先根序递归法建立二叉树(针对不需要总是问询的情况,本人认为是最简单的一种方法)

CreateTree(node *T)
{
char a;
cin>>a;
if(a=='#')
{
T=NULL;
}
else
{
T=new node;//T=(node *)malloc(sizeof(node));
T->data=a;
CreateTree(T->left);
CreateTree(T->right);
}
}
或者

Node* Create()
{
node *t=NULL;
char a;
cin>>a;
if(a!='#')
{
t=new node;
t->data=a;
bt->left=Create();
bt->right=Create();
}
return t;
}


example:             a

                        b       c                   输入为ab##c##

2.与用户交互的方式,根据用户输入根节点,data,parent,l/r;

node *find;
CreateTree(node *p)
{
char sign;
p=new node();
cout<<"Input root:";
cin>>p->data;
do{
cout<<"Input data ,parent, L/R:"
char c;
int t,par;
cin>>t>>par>>c;
node *temp=new node;
temp->data=t;
if(c=='L')
{
find->left=temp;
}
else
{
find->right=temp;
}
cout<<"Any else?------y/n";
cin>>sign;
}while(sign=='y');
}
void Find(node *p,int par){
if(p1!=NULL)
{
if(p->data==par)
{
find=p;
return;
}
else
{
Find(p->left);
Find(p->right);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: