二叉树性质如下:
1 对任何一颗二叉树,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1;
2 具有n个结点的完全二叉树的深度为floor(logn)+1
证明:假设深度为k :
2^(k-1)-1<n<=2^k-1 或 2^(k-1)<=n<2^k
于是k-1<=logn<k 因为k为整数 ,所以 k=int(logn)+1;
3 N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:
若I为结点编号则 如果I!=1,则其父结点的编号为I/2;
如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;
如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。
4 有n个节点的二叉链表中必定存在n+1个空链域。为什么?
空链域数=2n0+n1=2(n2+1)+n1=n1+2n2+1=n+1;
参考: