Copyright (c) 2015,烟台大学计算机学院
All rights reserved,
All rights reserved,
文件名称:idea.cpp
作者:王阳
完成日期:2015年12月04日
设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数:#include <stdio.h>
#include "btree.h"
int Level(BTNode *b,ElemType x,int h)
{
int l;
if (b==NULL)
return 0;
else if (b->data==x)
return h;
else
{
l=Level(b->lchild,x,h+1);
if (l==0)
return Level(b->rchild,x,h+1);
else
return l;
}
}
int main()
{
BTNode *b;
CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");
printf("值为\'K\'的节点在二叉树中出现在第 %d 层上n",Level(b,'K',1));
DestroyBTNode(b);
return 0;
}
本文介绍了一个用于确定二叉树中特定节点所在层级的算法。通过递归方式遍历二叉树,该算法能有效找到指定值的节点位于哪一层。文中还提供了一个示例程序,演示了如何创建一棵特定结构的二叉树,并使用该算法找到值为'K'的节点所在的层数。
1330

被折叠的 条评论
为什么被折叠?



