思路: 二叉排序树满足“左子树的值<根节点的值<右子树的值”,判断该节点在二叉排序树中的层次,可以每查找一次就让一个整数值n加1(该整数值n代表该节点的层次大小),当停止查找即指定节点的值等于二叉树中某一节点的值时,返回n即可。代码实现如下:
int find(BitTree bt,BiNode *p)
{
int n=0;
if(bt!=NULL)//当树的根节点不为空时,执行后续语句;若为空,表明该树为空树,则直接return;
{
n++;
while(bt->data!=p->data)//当根节点的值不等于该指定结点的值时
{
if(bt->data<p->data)//若根节点的值小于该指定结点的值,往该根节点的右子树中查找
{
bt=bt->rchild;
}else{ //若根节点的值大于于该指定结点的值,往该根节点的左子树中查找
bt=bt->lchild;
}
n++;//层数加1
}
return n;
}
}