Status InsertBiTree(BiTree &T,int e) //插入新结点
{
    if(T==NULL){
        T=(BiTNode *)malloc(sizeof(BiTNode));
        T->data=e;T->lchild=NULL;
        T->rchild=NULL;
        return 1;
    }
    if(T->data<e)
        InsertBiTree(T->rchild,e);
    else
        InsertBiTree(T->lchild,e);
    return 0;
}
int main()   //主函数
{
    BiTree  T=NULL;
    int i,n,e;
    //生成二叉排序树T
    scanf("%d",&i);
    while(i!=-1)
    {
        e=i;
        InsertBiTree(T,e);
        scanf("%d",&i);
    }
    //前、中、后序遍历二叉树
    PreOrderTraverse(T,PrintElement);
    printf("\n");
    InOrderTraverse(T,PrintElement);
    printf("\n");
    PostOrderTraverse(T,PrintElement);
    printf("\n");
    
         //计数并输出
    printf("%d\n", TreeCount(T));
        

    return 0;//补充代码
 }//main
Status TreeCopy(BiTree Ta,BiTree &Tb) //树的复制
{
    if(Ta==NULL) return 0;
    int e = Ta->data;
    InsertBiTree(Tb,Ta->data);
    TreeCopy(Ta->lchild,Tb->lchild);
    TreeCopy(Ta->rchild,Tb->rchild);
    return 1;
}
int main()   //主函数
{
    BiTree  Ta=NULL,Tb=NULL;
    int i,n,e;
    scanf("%d",&n);//生成二叉排序树Ta
    for(i=0;i<n;i++){
        scanf("%d",&e);
        InsertBiTree(Ta,e);
    }
    //前、中、后序遍历二叉树
    PreOrderTraverse(Ta,PrintElement);
    printf("\n"); //getchar();
    InOrderTraverse(Ta,PrintElement);
    printf("\n"); //getchar();
    PostOrderTraverse(Ta,PrintElement);
    printf("\n"); //getchar();
    
    //printf("Start to copy:\n");
    //getchar();
    TreeCopy(Ta,Tb);//复制生成Tb 

    scanf("%d",&e);
    InsertBiTree(Tb,e);//在Tb中插入新结点

    PreOrderTraverse(Tb,PrintElement);
    printf("\n");
    InOrderTraverse(Tb,PrintElement);
    printf("\n");
    PostOrderTraverse(Tb,PrintElement);
    printf("\n");

    scanf("%d",&e);
    InsertBiTree(Ta,e);
    PreOrderTraverse(Ta,PrintElement);
    printf("\n");
    InOrderTraverse(Ta,PrintElement);
    printf("\n");
    PostOrderTraverse(Ta,PrintElement);
    printf("\n");
    

    return 0;//补充代码
 }//main
int main()   //主函数
{
	BiTree  T=NULL;
	int i,n,e;
	scanf("%d",&n);//生成二叉排序树Ta
	for(i=0;i<n;i++){
		scanf("%d",&e);
		InsertBiTree(T,e);
	}
    //前、中、后序遍历二叉树
	PreOrderTraverse(T,PrintElement);
	printf("\n");
	InOrderTraverse(T,PrintElement);
	printf("\n");
	PostOrderTraverse(T,PrintElement);
	printf("\n");

    scanf("%d",&i);
}//main