二叉树求深度的递归的详细分析
二叉树求深度递归算法源码
》数据结构:
typedef struct BINODE
{
TELEMETYPE data;
struct BINODE *lchild,*rchild;
}BiNode,*BiTtree;
》递归函数
int GetTreeDeep(BiTtree T) //计算二叉树的深度
{
if(T==NULL)
return 0;
else{
int a = GetTreeDeep(T->lchild);
int b = GetTreeDeep(T->rchild);
return (a>b)?(a+1):(b+1);
}
}
如(a)图,假设给出创建了这个二叉树,使用如上给出的递归实现的经典算法,这个递归过程是怎样的呢?
递归过程中GetTreeDeep这个函数被自身多次调用,让我们给它们标号: