您的位置:首页 > 其它

二叉搜索树的搜索和最值情况

2015-12-19 12:02 211 查看
二叉搜索树是一种排序树,其左子树的值<=根节点<=右子树,根据此公式,可以很方便的得出二叉树搜索树的最值,其代码如下:

typedef struct BiNode
{
char data;
BiNode *left,*right;
}BiNode,*BiTree;
void TreeMinimum(BiTree &T)//**是对指针的引用,为根节点**
{
while(T->left!=NULL)
{
T=T->left;
}
}
void TreeMaxmum(BiTree &T)
{
while(T->right!=NULL)
{
T=T->right;
}
}


二叉搜索树的搜索情况代码如下,key为待搜索的值:

void TreeSearch(BiTree &T,char key)
{
while(T!=NULL && key!=T->data)
{
if(key<T->data)
{
T=T->left;
}
else
{
T=T->right;
}
}

}


注意,这是利用循环进行递归,而不是用函数进行递归,所以效率较函数递归要高,因为利用函数递归的话,计算机要保存断点,寄存器,复制变量等等,消耗计算机的性能。下面的代码就是利用函数,不可取。

void TreeSearch(BiTree &T,char key)
{
if(T==NULL || key==T->data)
{
return T;
}
if(key<T->data)
{
return TreeSearch(T->left,key);
}
else
{
return TreeSearch(T->right,key);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: