当前位置:文档之家› 二叉排序树查找算法

二叉排序树查找算法

/*否则指针p指向查找路径上访问的最后一个结点并返回false*/
Status SearchBST(BiTree T,int key,BiTree f,BiTree *p)
{
if(!T)//查找不成功
{
*p = f;
return false;
} else if(key == T->data)//查找成功
{
*p = T;
return true;
}else if(key < T->data)
return SearchBST(T->lchild,key,T,p);//在左子树继续查找
else
return SearchBST(找
}
二叉排序树(二叉查找树):是一颗空树或者具有下列性质的二叉树:
若它的左子树不空,则左子树上所有结点值均小于他的根结构的值;
若它的右子树不空,则右子树上所有结点值均大于它的根结构的值
它的左右子树也都是二叉排序树
二叉树的二叉链表结点结构定义:
/*二叉树的二叉链表节点结构定义*/
typedef struct BiTNode//节点结构
{
int data;//节点数据
struct BiTNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BTree;
二叉排序树的查找算法实现:
/*递归查找二叉排序树T中是否存在key*/
/*指针f指向T的双亲,其初始调用值为NULL*/
/*若查找成功,则指针p指向该数据元素节点,并返回true*/
相关主题