总结自《2018版数据结构高分笔记》
1、非空二叉树上叶子结点数等于双分支结点数加1
这道题在公司招聘的笔试题中经常作为一道填空或者选择题出现,我们可以稍微证明一下这个结论。
证明
假设二叉树中叶子结点数为n0,单分支结点数为n1,双分支结点数为n2,则总结点数为n0+n1+n2。那么在一棵树中,所有结点的分支数等于单分支结点数加上双分支结点数的两倍,即n1+2*n2。另一方面,在一棵二叉树中,除了根结点外,每个结点都有唯一的一个分支指向它,因此二叉树中总的分支数=结点数-1,即n0+n1+n2=n1+2*n2+1,可以得到最初的结论。
变形
这个性质可以运用到很多题目中,比如,题目可能会问二叉树中总的结点数为n,则树中的空指针有多少。如果把空指针想成是叶子结点的话,我们可以认为树中的现有的n个结点都是双分支结点,所以空指针的树木为n+1个。
2、二叉树的第i层上最多有2^(i-1)个结点
结点最多的情况就是满二叉树的情况,此时二叉树每层上的结点数构成了一个首项为1,公比为2的等比数列,通项为2^i-1,i为层号
3、高度或深度为k的二叉树最多有2^(k)-1个结点,换句话说,满二叉树的结点个数为 2^(k)-1。
4、在n个结点的完全二叉树中,对各结点从上到下,从左到右依次编号,则结点之间有如下的关系:
若i为某结点a的编号,则:
如果i!=1,则a的双亲结点编号为floor(i/2)(向下取整的意思);
如果2i<=n,则a的左孩子的编号为2i,反之a无左孩子;
如果2i+1<=n,则a的右孩子的编号为2i+1,反之a无右孩子。