Code:–
Node maketree(int in[],int pos[],int is,int ie,int posindex){
if(is>ie){
return NULL;
}
Noderoot= new Node(pos[posindex]);
posindex–;
if(is==ie){
return root;
}
int inindex,i;
for(i=is;i<=ie;i++){
if(in[i]==root->data){
inindex=i;
break;
}
}
root->right=maketree(in,pos,inindex+1,ie,posindex);
root->left=maketree(in,pos,is,inindex-1,posindex);
return root;
}
Node *buildTree(int in[], int pos[], int n) {
return maketree(in,pos,0,n-1,n-1);
}