二叉查找树的构造

使二叉树成为二叉查找数的性质是:对于树的每个节点x,它的左子树的所有值小于x项的值,它的右子树的所有值大于x项的值。

怎样构造一棵二叉查找树呢?

首先设置树的数据结构

struct BinaryNode
{
int element;
BinaryNode *left;
BinaryNode *rigth;
BinaryNode(const int &theElement,BinaryNode *lt,BinaryNode *rt)
:element(theElement),left(lt),rigth(rt){}
};

然后用insert函数构造二叉树

void insert(const int &x,BinaryNode *&t)
{
if(t==NULL)
{
t=new BinaryNode(x,NULL,NULL);
}
else if(x<t->element)
{
insert(x,t->left);
}
else if(x>t->element)
{
insert(x,t->rigth);
}
else
;
}

实现例子:

int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
BinaryNode *root=NULL;
for(int i=0;i<10;i++)
{
insert(a[i],root);
}
return 0;

}

原文地址:https://www.cnblogs.com/biong-blog/p/4042612.html