二叉排序树的合并其实有好多方法了,反正就是把元素插入进去就好了,大不了两颗树都不建直接新建一个二叉排序树,函数也不是很难,如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421210558399.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUyMjkwNDM2,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421210602482.png)
#include<stdio.h>
#include<stdlib.h>
typedef struct BinTreeNode
{
int data;
struct BinTreeNode *Lchild;
struct BinTreeNode *Rchild;
}BinTreeNode,*BinTree;
void CreateTree(BinTreeNode **T)//建立二叉树
{
int elem;
scanf("%d",&elem);
if(elem==-1) *T=NULL;
else{
*T=(BinTreeNode*)malloc(sizeof(BinTreeNode));
(*T)->data=elem;
CreateTree(&((*T)->Lchild));
CreateTree(&((*T)->Rchild));
}
}
void InsertBinTree(BinTreeNode **T,int elem)//插入二叉排序树结点(因为要从上往下一步一步找,所以一次只能插一个,不能递归)
{
if(*T==NULL)
{
*T=(BinTreeNode*)malloc(sizeof(BinTreeNode));
(*T)->data=elem;
(*T)->Lchild=NULL;
(*T)->Rchild=NULL;
}
else if(elem<(*T)->data)
InsertBinTree(&((*T)->Lchild),elem);
else if(elem>(*T)->data)
InsertBinTree(&((*T)->Rchild),elem);
}
void printOrder(BinTreeNode *T)//输出树
{
if(T==NULL)return;
printOrder(T->Lchild);
printf("%d ",T->data);
printOrder(T->Rchild);
}
void CombineTree(BinTreeNode **T1,BinTreeNode **T2)
{
if(*T2)
{
CombineTree(&(*T1),&((*T2)->Lchild));
InsertBinTree(&(*T1),(*T2)->data);
CombineTree(&(*T1),&((*T2)->Rchild));
}
}
int main()
{
BinTreeNode *T1,*T2;
CreateTree(&T1);
CreateTree(&T2);
CombineTree(&T1,&T2);
printOrder(T1);
/*
BinTreeNode *T;
int a,b,elem,key;
CreateTree(&T);
scanf("%d %d",&a,&b);
scanf("%d",&elem);
scanf("%d",&key);
SelectRangeelem(T,a,b);
printf("\n");
InsertBinTree(&T,elem);
printOrder(T);
printf("\n");
DelBST(T,key);
printOrder(T);
*/
//CreateBinTree(&T);
//printOrder(T);
//DelBST(T,12);
//printOrder(T);
//BinTreeNode *Tfind;
//Tfind=SelectTree(T,48);
//printf(" %d",Tfind->data);
//if(SelectBinSortTree(T))
//{
// printf("yes");
//}
// else printf("no");
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421210620873.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUyMjkwNDM2,size_16,color_FFFFFF,t_70)