int Binary_search(int* a,int n,int key)
{
int low,mid,high;
low = 1;
high = n;
while(low<=high)
{
mid = (low+high)/2;
if(key<a[mid])
high = mid-1;
else if(key>a[mid])
low = mid+1;
else
return mid;
}
return 0;
}
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->left,key,T,p);
}
else
return searchBST(T->right,key,T,p);
}