二叉树的性质
前言:最近在牛客网上做题,发现有很多的二叉树结点的题目,让我很是头疼,所以利用闲暇的时间做了一下整理。希望此篇对你我都有帮助,文章内容有自己总结,也有其他博主的见解,仅供学习。
一般二叉树性质
1、在非空二叉树的i层上,至多有2i-1个节点(i>=1)。
2、在深度为K的二叉树上最多有2k-1个结点(k>=1)。
3、对于任何一棵非空的二叉树,如果叶节点个数为n0,度数为2的节点个数为n2,则有: n0 = n2 + 1
在一棵二叉树中,除了叶子结点(度为0)之外,就剩下度为2(n2)和1(n1)的结点了。则树的结点总数为T = n0+n1+n2;在二叉树中结点总数为T,而连线数为T-1.所以有:n0+n1+n2-1 = 2*n2 +n1;最后得到n0 = n2+1;
完全二叉树性质
1、具有n的结点的完全二叉树的深度为log2n+1.
满二叉树是完全二叉树,对于深度为k的满二叉树中结点数量是2k-1 = n,完全二叉树结点数量肯定最多2k-1,同时完全二叉树倒数第二层肯定是满的(倒数第一层有结点,那么倒是第二层序号和满二叉树相同),所以完全二叉树的结点数最少大于少一层的满二叉树,为2k-1-1。
根据上面推断得出: 2k-1-1< n=<2k-1,因为结点数Nn为整数那么n<=2k-1可以推出n<=2k ,n>2k-1-1可以推出 n>=2k-1,所以2k-1<n<=2k 。即可得k-1<=log2n<k 而k作为整数因此k=[log2n]+1。
2、如果有一颗有n个节点的完全二叉树的节点按层次序编号,对任一层的节点i(1<=i<=n)有
①.如果i=1,则节点是二叉树的根,无双亲,如果i>1,则其双亲节点为[i/2],向下取整
②.如果2i>n那么节点i没有左孩子,否则其左孩子为2i
③.如果2i+1>n那么节点没有右孩子,否则右孩子为2i+1