一个结点的度是指该结点的子树个数,而树的度是树中所有结点的度的最大值,数的层规定根结点为第一层,其他所有结点的层都是其父结点的层号加1,树的高度或深度是树中所有结点的最大层号。
二叉树的性质:
- 在二叉树中,第i层的结点数最多为 2i−1 ,i>=1.
- 在深度为k的二叉树中,结点总数最多为 2k -1,k>=1.
- 对任何非空的二叉树T,如果叶结点的个数为 n0 ,而度为2的结点数为 n2 ,则 n0 = n2 +1.
满二叉树定义:一个深度为k且具有
2k
-1个结点的二叉树。
完全二叉树定义:一个深度为k具有n个结点的二叉树且其结点的排版顺序是与让深度为k的满二叉树结点编号从1到n相对应,其性质如下:
- 若 i!=1,则其父结点parent(i)的编号为[i/2],若i=1,则i是根节点。
- 若2i<=n,则左儿子left_child(i)的编号为2i,若2i>n,则i没有左儿子。
- 若2i+1<=n,则其右儿子right_child(i)的编号为2i+1,若2i+1>n,则i没有右儿子。
树的两种存储方式,数组和链表,例子如图:
因此可以看输出数组存储类似这种倾斜的二叉树很浪费空间,而链表则不会。