**算法思想:**求指定结点的层次也就是求指定结点的高度,理论上来说有好几种方法,可以类比二叉树求高度的算传送门进行改造,或者直接根据二叉排序树的查找来直接计算,下面给出直接根据二叉排序树查找直接计算的方法
首先给出二叉排序树的查找算法做一下借鉴
void BST_Search(BSTree *root,int k){
if(!root)
return;
while (root){
if(root->data==k){
cout<<"result: "<<root->data;
break;
}
else if(root->data>k){
cout<<"left-->";
root=root->lchild;
}
else{
cout<<"right-->";
root=root->rchild;
}
}
}
在查找算法上进行修改
int Level(BSTree *root,int k){
int height=0;
if(!root)
return 0;
while (root){
if(root->data==k){
height++;
break;
}
else if(root->data>k){
height++;
root=root->lchild;
}
else{
height++;
root=root->rchild;
}
}
return height;
}
也可以进行一些优化,此处就不写了