二叉排序树的查找是从根结点开始,沿着某一个分支逐层开始往下比较的过程。
若二叉排序树非空,将给定值与根结点的关键字比较,若相等则查找成功。
若不等,则当根结点的关键字大于给定关键字值时,在根结点的左子树中查找,否则在根结点右子树中查找。
递归调用查找函数,直到返回为找到的结点,或者为空结束。
BSTNode *BST_Search(BiTree T,ElemType key)
//查找函数返回指向关键字值为key的结点指针,若不存在,返回NULL
{ if(null==T)
return null;//当为空说明不存在data为key的结点
if(key==t->data)
return T;//当key为这data的时候就返回这个结点
if(key< T->data)//当这个值key<该结点的data就传入右孩子和key
return BST_Search(T->lchild,key);
else{//当这个值key>该结点的data就传入右孩子和key
return BST_Search(T->rchild,key);
}
}