cpp-interview/Algorithm/BSTSearch.h

30 lines
1002 B
C
Raw Normal View History

/*
:
b中查找x的过程为
1. b是空树
2. x等于b的根节点的数据域之值
3. x小于b的根节点的数据域之值
4.
*/
// 在根指针T所指二叉查找树中递归地查找其关键字等于key的数据元素若查找成功
// 则指针p指向該数据元素节点并返回TRUE否则指针指向查找路径上访问的最终
// 一个节点并返回FALSE指针f指向T的双亲其初始调用值为NULL
Status SearchBST(BiTree T, KeyType key, BiTree f, BiTree &p){
if(!T) { //查找不成功
p=f;
return false;
}
else if (key == T->data.key) { //查找成功
p=T;
return true;
}
else if (key < T->data.key) //在左子树中继续查找
return SearchBST(T->lchild, key, T, p);
else //在右子树中继续查找
return SearchBST(T->rchild, key, T, p);
}