求二叉树高度的原理、算法是什么,越详细越好,C语言,谢谢

2025-04-19 17:01:24
推荐回答(2个)
回答1:

首先分析二叉树的深度(高度)和它的左、右子树深度之间的关系。从二叉树深度的定义可知,二叉树的深度应为其左、右子树深度的最大值加1。由此,需先分别求得左、右子树的深度,算法中“访问结点”的操作为:求得左、右子树深度的最大值,然后加 1 。
int Depth (BiTree T ){ // 返回二叉树的深度
if ( !T ) depthval = 0;
else {
depthLeft = Depth( T->lchild );
depthRight= Depth( T->rchild );
depthval = 1 + (depthLeft > depthRight ?
depthLeft : depthRight);
}
return depthval;
}

回答2:

二叉树高度的计算是通过遍历来实现的,主要的遍历方法有三种:前序遍历、中序遍历、后序遍历,这几种方法又有共同的实现方法:一般采用递归来实现。递归算法在C语言中是个很重要的知识点。

希望回答对你有帮助。