二叉数的高度?
//h是全局变量初值0,h1是局部变量void high(bitre T);
{
int h1;
if (T!=null)
{
high(T->lchild);
h1=h;
high(T->rchild);
h=max(h1,h)+1;
}
}
请问,h1不是保存了T->lchild的高度,max不是选出了左右子树的大者从而h是二叉树的高度吗?但为什么这个程序求得的是结点数,而不是高度?我实在看不懂,请大家指教。
2006-09-22 21:22
2006-09-22 23:26

2006-09-22 23:37
2006-09-22 23:51

2006-09-23 00:11
2006-09-23 00:28
如果能把它化简的话,
void high(bitre T);
{
if (T!=null)
{
high(T->lchild);
high(T->rchild);
h++;
}
}
还是很好看出是求接点数的,
至于归纳法和证明,不好意思,偶不会
.........
我想说的是理解递归的每一步不一定要靠归纳法吧

2006-09-23 12:34

),特别在递归程序很长且模拟很难的情况下应该会比较适用
2006-09-23 13:27
汗,帖子发错地方。,怎么样删掉这东西?
[此贴子已经被作者于2006-9-23 13:52:07编辑过]
2006-09-23 13:47