
#include<stdio.h>
#include<stdlib.h>
typedef struct Binode
{
int data;
struct Binode* lchild;
struct Binode* rchild;
}Binode,*Bitree;
Bitree create1(int* Post,int* In,int n)//由中序和和后序得到前序
{
int* q = In;//指向后序序列
if(n<=0)
return NULL;
while(*q != *(Post+n-1))
q++;//找根节点的位置
int len = q - In;//左与根间(左子树)的元素个数
Bitree T;//前序
T = (Bitree)malloc(sizeof(Bitree));
T->data = *q;
T->lchild = create1(Post,In,len);
T->rchild = create1(Post+len,q+1,n-len-1);
return T;
}
void print(Bitree T)//打印前序
{
if(T)
{
printf("%d ",T->data );
print(T->lchild );
print(T->rchild );
}
return ;
}
int main()
{
int* Post,*In,*Pre;
int N,i;
scanf("%d",&N);
Post = (int*)malloc(N*s