数据结构 | 树与二叉树常用计算公式

Posted jasonceng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构 | 树与二叉树常用计算公式相关的知识,希望对你有一定的参考价值。

在二叉树的理论推导以及一些高频类型题中,我们经常需要计算二叉树的总结点数,某一层的结点数以及已知结点数反推树的高度,本文围绕这几个高频知识点,归纳总结以下公式。

(1)非空二叉树叶子结点数 = 度为2的结点数 + 1 即,$ N_0 = N_2 + 1 $

(2)非空二叉树上第K层至多有$ 2^{k-1} $ 个结点($ K ge 1 $)

(3)高度为H的二叉树至多有$ 2^H - 1 $ 个结点($ H ge 1 $)

(4)具有N个($ N > 0 $)结点的完全二叉树的高度为 $ lceil log_2{(N+1)} ceil $ 或 $ lfloor log_2{N} floor + 1 $

(5)对完全二叉树按从上到下、从左到右的顺序依次编号1,2,...,N,则有以下关系:

① 当 $ i > 1 $ 时,结点 $ i $ 的双亲结点编号为 $ lfloor i/2 floor $ ,即当 $ i $ 为偶数时,其双亲结点的编号为 $ i/2 $ ,它是双亲结点的左孩子;当 $ i $ 为奇数时,其双亲结点的编号为 $ (i-1)/2 $ ,它是双亲结点的右孩子。

② 当 $ 2i le N $ 时,结点i的左孩子编号为 $ 2i $ ,否则无左孩子。

③ 当 $ 2i+1 le N $ 时,结点i的右孩子编号为 $ 2i+1 $ ,否则无右孩子。

④ 结点 $ i $ 所在层次(深度)为 $ lfloor log_2{i} floor +1 $ 。(设根结点为第1层)

以上是关于数据结构 | 树与二叉树常用计算公式的主要内容,如果未能解决你的问题,请参考以下文章

C语言的世界-树与二叉树

学习数据结构--第四章:树与二叉树(平衡二叉树)

考研数据结构与算法树与二叉树

普通树与二叉树

树与二叉树数据结构详解

数据结构之树与二叉树