#include<stdio.h>
#include<stdlib.h>
typedef struct BinNode
{
int data;
struct BinNode *lchild;
struct BinNode *rchild;
}BinNode,*BinTree;
void CreateBinTree(BinTree *tree)
{
int val;
scanf("%d",&val);
if(val==-1)
{
(*tree)=NULL;
}
else
{
*tree=(BinTree)malloc(sizeof(BinNode));
(*tree)->data=val;
CreateBinTree(&((*tree)->lchild));
CreateBinTree(&((*tree)->rchild));
}
}
void Inorder(BinTree T)
{
if(T)
{
Inorder(T->lchild);
printf("%d ",T->data);
Inorder(T->rchild);
}
}
void Insert(BinTree *T,int key)
{
if(!(*T))
{
(*T)=(BinTree)malloc(sizeof(BinNode));
(*T)->data=key;
(*T)->lchild=(*T)->rchild=NULL;
return;
}
if(key==(*T)->data)
return;
if(key>(*T)->data)
Insert(&((*T)->rchild),key);
else
Insert(&((*T)->lchild),key);
}
void InsertBST(BinTree T1,BinTree T2)
{
if(T2)
{
InsertBST(T1,T2->lchild);
Insert(&T1,T2->data);
InsertBST(T1,T2->rchild);
}
}
int main()
{
BinTree T1=NULL;
BinTree T2=NULL;
CreateBinTree(&T1);
CreateBinTree(&T2);
InsertBST(T1,T2);
Inorder(T1);
printf("\n");
return 0;
}