假设二叉书采用二叉链表存储结构,设计一个算法,求二叉树中指定结点x的层数

假设二叉书采用二叉链表存储结构,设计一个算法,求二叉树中指定结点x的层数 很着急正考呢

可以在中序遍历的基础上,加几条指令.n表示层,初始值为0
下列算法是递归嵌套。
1、n++,遍历当前节点的左子树
2、n--,访问当前节点,如果节点的data==x,那么(意味着找到节点了)打印节点层数
3、n++,遍历当前节点的右子树
递归结束后,如果没有找到X节点不要忘了,打印一下没有找到。

参考资料:严蔚敏清华大学出版社《数据结构》第二版

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-27
int level(Bnode *T,elementtype X,int h)//只有一个结点时,h=1
{ int t1,t2;
if(T==NULL)return (0);
if(T->data==X) return (h);
if((t1=level(T->lchild,X,h))>1) return (t1+1);
if((t2=level(T->rchild,X,h))>1) return (t2+1);

}
相似回答