假设一棵平衡二叉树的每个结点都标明了平衡因子b,试设计一个算法,求平衡二叉树的高度。

admin2019-01-16  29

问题 假设一棵平衡二叉树的每个结点都标明了平衡因子b,试设计一个算法,求平衡二叉树的高度。

选项

答案因为二叉树各结点已标明了平衡因子b,故从根结点开始记树的层次。根结点的层次为1,每下一层,层次加1,直到层数最大的叶子结点,这就是平衡二叉树的高度。当结点的平衡因子b为0时,任选左右一分支向下查找,若b不为0,则沿左(当b=1时)或右(当b=一1时)向下查找。 int Height(BSTree t){ //求平衡二叉树t的高度 int level=0: BSTree p=t; while(P){ level++: //树的高度增1 if(p->bf<0)P=p->rchild;//bf=一1沿右分支向下 //bf是平衡因子,是二叉树t结点的一个域,因篇幅所限,没有写出其存储定义 else P=P一>lchild: //bf>=0沿左分支向下 }//while return(level): //平衡二叉树的高度 }//算法结束

解析
转载请注明原文地址:https://kaotiyun.com/show/reRi777K
0

最新回复(0)