C++ 由二叉树中序先序序列创建二叉树
1.学习二叉树中序先序创建二叉树的思想
2.★数组使用
//二叉树定义
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
BiTNode*lc,*rc;
}*BT;
//中序先序创建二叉树函数
void CreateBiTree(BT &T,char*pre,char*in,int len)
{
int len1; //定义左子树的长度
char* temp;
if(len<=0)
{
T=NULL;
return;
}
T=new BiTNode;
T->data=*pre;
for(temp=in; temp<in+len; temp++)
{
if(*temp==*pre)
break;
}
len1=temp-in;
CreateBiTree(T->lc,pre+1,in,len1);
CreateBiTree(T->rc,pre+1+len1,temp+1,len-1-len1);
}