一棵高度为8的完全二叉树有多少个节点?
高度为8的完整二叉树至少具有以下节点:
在节点数最少的情况下,左右子树的高度差为1,所以节点总数为S(n)= S(n-1)+S(n-2)+1。
初始值:S(1) = 1,S(2) = 2。S(3) = 4,S(4) = 7,S(5) = 12,S(6) = 20,S(7) = 33,S(8) = 54。
高度为8的平衡二叉树的最小节点数是54。
如果树的高度比较大,可以根据以下公式计算:
S(n)= S(n-1)+S(n-2)+1,类似于斐波那契数列(F(n)=F(n-1)+F(n-2)),S可以通过归纳得到。
扩展数据:
它具有以下性质:是一棵空树或其左右子树高度差的绝对值不超过1,左右子树都是平衡二叉树。平衡二叉树常见的实现方法有红黑树、AVL、替罪羊树、Treap、扩展树等。?
功能
我们知道,对于一般的二叉查找树,它的期望高度(即当它是平衡树时)是log2n,每次运算的时间复杂度(O(log2n))也是由此决定的。但在某些极端情况下(如插入序列排序时),二叉查找树会退化为近似链或链,此时其运算的时间复杂度退化为线性,即O(n)。
我们可以通过随机建立一个二叉查找树来尽量避免这种情况,但是经过多次运算,我们在删除的时候总是选择用要删除的节点的后继来替换自己,这样会造成右侧节点数减少,使得树向左侧下沉。这也会破坏树的平衡,增加其运算的时间复杂度。
平衡二叉树具有以下性质:是一棵空树或其左右子树高度差的绝对值不超过1,左右子树都是平衡二叉树。常用的算法包括红黑树、AVL、Treap、伸展树等。在平衡二叉查找树中,我们可以看到它的高度一般都很好的维持在O(log(n)),大大降低了运算的时间复杂度。