先序遍历序列和中序遍历序列重建二叉树
程序员文章站
2022-03-24 16:07:14
...
//先序区间【preL,preR】,中序区间为【inL,inR】
node *creat(int preL,int preR,int inL,int inR)
{
if(preL>preR)
{
return NULL;
}
node *root=new node;
root->data=pre[preL];
int k;
for(int i=inL;i<=inR;i++)
{
if(pre[preL]==in[i])
{
k=i;
break;
}
}
int numleft=k-inL; //根据数量去划分左右子树
root->lchild=creat(preL+1,preL+numleft,inL,k-1);
root->rchild=creat(preL+numleft+1,preR,k+1,inR);
return root;
}
上一篇: 数据结构实验之查找三:树的种类统计
下一篇: 中序遍历序列和 后序遍历序列重建二叉树