树的性质
- 注意区分有序树和无序树。
- 树中的结点数等于所有结点的度数加1。
- 度为m的树中第i层上至多有mi-1个结点(i >= 1)。
- 高度为h的m叉树至多有(mh - 1) / (m - 1)个结点。
- 具有n个结点的m叉树的最小高度为ceil(logm(n(m-1) + 1))。
- 树的路径长度是所有路径长度的总和,树根到每个结点的路径的最大值应是树的高度减1。
- 分支数等于树中各结点的度之和。
- 总结点数 = n0 + n1 + n2 + … + nm (即度分别为n0…nm的结点个数的总和)
- 总分支数 = 1n1 + 2n1 +…mnm
- 总结点数 = 总分支数 + 1
二叉树的概念
非空二叉树上的叶子结点数等于度为2的结点数加1,即n0 = n2 + 1
二叉树与度为2的有序树的区别:
- 度为2的树至少有3个结点,而二叉树可以为空
- 二叉树的子树有左右之分,颠倒了是另外一棵二叉树,而度为2的树是无序树。
满二叉树
一棵高度为h,且含有2h - 1个结点的二叉树称为满二叉树。除叶子结点外每个结点度数为2.
完全二叉树
性质:
- 若i <= floor(n / 2),则结点i为分支结点,否则为叶子结点。叶子结点数等于分支结点数或者分支结点数加1
- 叶子结点只可能在层次最大的两层上出现。
- 若有度为1的结点,则只可能有一个。
- 按层次编号后,一旦出现某结点(编号为i)为叶子结点或只有左孩子,则编号大于i的结点均为叶子结点。
- 此条性质可以按照满二叉树以及满二叉树去掉最后一个结点这两个特殊情况来理解:
- 若n为奇数,则每个分支结点都有左子女和右子女。
- 若n为偶数,则编号最大的分支结点(编号为n/2)只有左子女,没有右子女,其余分支结点左、右子女都有。
二叉排序树
略
平衡二叉树
树上任一结点的左子树和右子树的深度之差不超过1。
二叉树的性质
除了包含树的性质外,还有:
- 非空二叉树上的叶子结点数等于度为2的结点树加1。