二叉数的高度?
//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是二叉树的高度吗?但为什么这个程序求得的是结点数,而不是高度?我实在看不懂,请大家指教。
如果能把它化简的话,
void high(bitre T);
{
if (T!=null)
{
high(T->lchild);
high(T->rchild);
h++;
}
}
还是很好看出是求接点数的,
至于归纳法和证明,不好意思,偶不会.........
我想说的是理解递归的每一步不一定要靠归纳法吧
汗,帖子发错地方。,怎么样删掉这东西?
[此贴子已经被作者于2006-9-23 13:52:07编辑过]