完全二叉树高度的公式来源于其结构的特点。完全二叉树的定义是除了最后一层外,其他每一层都是满的,而最后一层的节点从左到右填充。这意味着,如果我们有一个高度为h的完全二叉树,那么从第一层到第h-1层的节点数是满的,即每一层都有最大数量的节点。
对于高度为h的满二叉树,它有
个节点。因此,如果我们有n个节点的完全二叉树,那么它的高度h必须满足以下条件:
这个不等式说明,n个节点的完全二叉树的高度至少是h-1,但不足以达到h。因此,我们可以通过对n+1取对数(以2为底)并向上取整来得到高度h,因为
。这就是第一个公式:
另一种推导方法是考虑到高度为h的完全二叉树至少有
个节点,但少于
个节点。因此,我们可以通过对n取对数(以2为底)并向下取整,然后加1来得到高度h,因为
。这就是第二个公式: