标签:
二叉排序树(简称BST),也称为二叉查找树。二叉排序树或者为一颗空树,或者为一颗具有下列特性的飞空二叉树:
1.若左子树非空,则左子树上所有节点的关键字均小于根节点的关键字值。
2.若右子树非空,则右子树上所有节点的关键字均小于根节点的关键字值。
3.左右子树本身也是一颗二叉排序树。
/********************二叉排序树********************************/
void BST(BiTree &T)
{
ElemType x;
cin>>x;
while(x!=0)
{
CreateBST(T,x);
cin>>x;
}
}
int CreateBST(BiTree &T,ElemType x)
{
if(T==NULL)
{
T=new BiTNode;
T->data=x;
T->lchild=NULL;
T->rchild=NULL;
return 1;
}
else
{
if(x>T->data)
CreateBST(T->rchild,x);
else if(x==T->data)
return 0;
else
CreateBST(T->lchild,x);
}
}
void BST_Search(BiTree &T,ElemType x,int &n)
{
if(T)
{
n++;
if(x>T->data)
BST_Search(T->rchild,x,n);
else if(x==T->data)
cout<<"I Find It"<<n<<endl;
else
BST_Search(T->lchild,x,n);
}
else
{
cout<<"I cant‘t find it"<<endl;
}
}
标签:
原文地址:http://www.cnblogs.com/hutao886/p/4499287.html