数据结构的二叉树求深度的问题.
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/05 03:24:29
数据结构的二叉树求深度的问题.
typedef struct node
{ char data;
struct node *lchild,*rchild;
}JD;
int BiTreeDepth(JD *T)
{ /* 初始条件:二叉树T存在.操作结果:返回T的深度 */
int i,j;
if(!T)
return 0;
if(T->lchild)
i=BiTreeDepth(T->lchild); //递归求左子树的深度
else
i=0;
if(T->rchild)
j=BiTreeDepth(T->rchild); //递归求右子树的深度
else
j=0;
return i>j?i+1:j+1; //取深度值大者加1作为该树的深度
}
疑问是.这个算法中的求深度的语句:i=BiTreeDepth(T->lchild)
为什么递归结束后i就等于深度了呢?为什么每递归一次i就加上了1呢?.十分奇怪!
typedef struct node
{ char data;
struct node *lchild,*rchild;
}JD;
int BiTreeDepth(JD *T)
{ /* 初始条件:二叉树T存在.操作结果:返回T的深度 */
int i,j;
if(!T)
return 0;
if(T->lchild)
i=BiTreeDepth(T->lchild); //递归求左子树的深度
else
i=0;
if(T->rchild)
j=BiTreeDepth(T->rchild); //递归求右子树的深度
else
j=0;
return i>j?i+1:j+1; //取深度值大者加1作为该树的深度
}
疑问是.这个算法中的求深度的语句:i=BiTreeDepth(T->lchild)
为什么递归结束后i就等于深度了呢?为什么每递归一次i就加上了1呢?.十分奇怪!
那你说为什么不+1呢?
return i>j?i+1:j+1;
每次回调的时候都会比较i和j的值,即左子树的深度和右子树的深度,选较大者加1后作为以自己为根节点的树的深度
return i>j?i+1:j+1;
每次回调的时候都会比较i和j的值,即左子树的深度和右子树的深度,选较大者加1后作为以自己为根节点的树的深度
数据结构的二叉树求深度的问题.
菜鸟求教,数据结构二叉树的深度计算问题
二叉树的深度有关问题?
数据结构折半查找的二叉查找树的问题
数据结构二叉树定义问题
求二叉树的最远路径问题
谁能帮忙做下这到数据结构的题?设只包含根结点的二叉树深度为1,则深度为k的二叉树的结点总数最少为()
数据结构怎么还原中序表达式的二叉树
数据结构的二叉树问题 假设一棵二叉树的先序序列为ABCDEFGHI,中序序列为BCAEDGHFI,写出其后序序列,并请画
数据结构C递归的方法 前序 中序 后序 交换二叉树每个结点的左孩子和右孩子 结点个数 深度 叶结点个数
数据结构的线索二叉树,为什么在有n个结点的二叉链表中必定存在n+1个空链域
.设一棵二叉树的深度为k,则该二叉树中最多有( )个结点.