1、满二叉树:每一层都是满的
2、完全二叉树:除了最后一层,其它层都是满的,如果最后一层不满,从左边排列。
3、拥有孩子节点个数成为当前节点的度,完全二叉树的性质:n0 = n2+1,n1 = 0或者1
4、n0:度为0的节点个数,n1,n2同理,n是节点总数。n1 = 0或者1 很好理解,n0 = n2+1,怎么理解?
考虑一个深度为3的满二叉树,n0为4,n2为3,使用归纳法,最后一层,从右边叶子节点去掉一个,n2也减少1,
从右边叶子节点再去掉一个,n2也减少1,满足条件。
5、已知完全二叉树的总结点个数为 699,求叶子节点个数。
当然可以使用笨的办法,假设最后一层为x,则 2^(n-1)-1+x = 699,求出最后一层的叶子节点数,上一层的叶子
节点数为2^(n-2)-(x-1)/2+1,二者相加。
使用完全二叉树的性质:n0 = n2+1,则n0+n1+n2=n,也就是2n0-1+n1=699, n0 = (700-n1)/2,n1必须为0,得出350
进一步推算,n0=(n-1)/2+1,也就是y/x + y%x==0?0,1 等价于 (y-1)/x+1,得出 n0=(699-1)/2+1=350
6、n1取值为0或者1,而 2n0-1+n1=n,2n0 = n+1-n1,得出n1 与 n的奇偶性相反。