根据先序序列建树
void PreCreat(Tree &p)
{
char ch;
scanf("%c",&ch);
if (ch=='\n')
return ;
else if (ch==',')
p = NULL;
else
{
p = new TreeNode;
p->data = ch;
PreCreat(p->lchild);
PreCreat(p->rchild);
}
}
知道中序和后序建树,
struct node *creat(struct node *root,char *s,char *s1,int n)
{
if(n<=0) return NULL;
root=(struct node*)malloc(sizeof(struct node));
root->a=s1[n-1];
int p=strchr(s,s1[n-1])-s;
root->l=creat(root->l,s,s1,p);
root->r=creat(root->r,s+p+1,s1+p,n-p-1);
return root;
};