问答题
假设一棵平衡二叉树的每个结点都标明了平衡因子b,试设计一个算法,求平衡二叉树的高度。【燕山大学2001四、3(8分)】
【正确答案】正确答案:根结点的层次为1,每下一层,层次加1,直到层数最大的叶子结点,这就是平衡二叉树的高度。当结点的平衡因子b为0时,任选左、右一分支向下查找,若b不为0,则沿左(当b=1时)或右(当b=1时)子树向下查找。递归算法的核心语句段如下: if(!bst)return 0; else if(bst一>bf==1 || bst一>bf==0) return(height(bst一>ichild)) //左子树高度+1 else return(1+height(bst一>rchild))//右子树高度+1
【答案解析】