数据结构的二叉树求深度的问题.
数据结构的二叉树求深度的问题.
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呢?.十分奇怪!
问答/380℃/2024-12-31 22:22:18
优质解答:
那你说为什么不+1呢?
return i>j?i+1:j+1;
每次回调的时候都会比较i和j的值,即左子树的深度和右子树的深度,选较大者加1后作为以自己为根节点的树的深度
我来回答
猜你喜欢
- But now he ___(sleep) at home.(正确形式填空) 是 is sleepping 还是 sle
- 数独计算不出来了,但我不想直接知道完全答案,只想知道下一步该怎么办
- 小明的爸爸给小明买了一些图书,故事书有14本,正好是科技书的8分之7,而科技书比童话书多15分之1.爸爸给小明买了多少本
- 帮我看看这篇洋文什么意思
- 有什么副词举几个词,副词是什么东西呢?
- 橡胶同步带加胶一般要加多厚的胶?
- 三眼一板的意思 是白鹅一课 这些食料并不奢侈;但他的吃法,三眼一板,一丝不苟
- quicklyIt is _ hard work,but finish it is _A a,on timeB a,in
- 小学科学题:请问自行车的刹车是杠杆吗?
- .设a,b是两条不同的直线,α,β是两个不同的平面,给出下列四个命题: