C语言:求出指定节点在给定二叉排序树中的层次算法
2023-09-27 14:22:46 时间
题目
设计一个算法,求出指定节点在给定二叉排序树中的层次。
思路解析
采用循环语句边查找边累计层次 n(初始时 bt 指向根节点,n=1)。当找到关键字
为 k 的节点时返回 n;否则返回 0,算法如下。
代码
int Level(BSTNode *bt, KeyType k)
{
int n = 1;
BSTNode *p = bt;
while(p!= NULL && p->key!=k)
{
if(k<p->key)
p = p->lchild; //往左子树中查找
else
p = p->rchild; //往右子树中查找
n++; //层数加 1
}
if(p!= NULL)
return n; //未找到
else
return 0;
}