1、二叉排序树:其左子树结点的值大于根结点的值,根结点的值大于右子树的结点的值。
2、给定一个数,求其在二叉排序树中的位置,返回该值对应的结点指针。
3、定义二叉树结点
struct node
{
int value;
node* left;
node* right;
};
//(非递归)查找二叉排序树某一结点
node* BiTreeSearch1(node* root,int k)
{
node* pnode=root;
while(pnode != NULL)
{
if(pnode->value == k)
return pnode;
else if(pnode->value >k)
pnode=pnode_>right;
else
pnode=pnode->left;
}
return NULL;
}
//递归查找二叉排树某一结点
node* BiTreeSearch2(node *root,k)
{
if((*root)==NULL)return NULL;
else
{
if((*root)->value==k)return root;
else if((*root)->value>k)BiTreeSearch2(&((*root)->left),k);
else if((*root)->value<k)BiTreeSearch2(&((*root)->right),k);
}
}