概念
祖先:当前结点到根结点路径上的结点都是当前结点的祖先。
后代:当前结点分支出来的都是后代
有序树与无序树:树中结点的子代结点从左到右有顺序要求就是有序树。
结点度:该结点有多少个分支结点度就是多少。
树的度:取结点度的最大值即为该树的度。
树可以规定每一个结点具有m个最大分支结点数,称为m叉树。最重点掌握二叉树。
森林:多个树组成。
其余概念:什么兄弟,表兄弟,深度层次翻书看。
树性质
辨别m叉树与度为m的树:m叉树只规定了每一个结点最多有m个子结点,可以小也可以等,而度为m的树说明必有一个结点有m个子结点。
所有性质需要会自己推
树具有性质:
- 所有结点数等于所有结点度数之和+1
- 度为m的树第i层至多有m^(i-1)个结点(i>=1)
- 高度为h的m叉树至多有(1-m^h)/(1-m)个结点
- 具有n个结点的m叉树的最小高度为logm(n*(n-m)+1)向上取整
- 高度为h的m叉树至少需要h个结点
- 高度为h,度为m的树至少需要h+m-1个结点
两种特殊二叉树重点掌握:满二叉树与完全二叉树
树可以按照层次遍历为每一个结点编号,假设编号为1~n。
满二叉树:每一个结点除了最后一层叶子结点,其他结点都是度为2的结点。或者说n恰好为2的m次方,1~n没有哪一个结点空缺。
完全二叉树:结点编号1~n不空缺即可。
所以满二叉树是特殊的完全二叉树。
满二叉树特点:
- 叶子结点只会存在于最后一层
- 不存在度为1的结点
- 编号i对应的左孩子为2i右孩子为2i+1。结点i的父亲结点为2/i向下取整。
完全二叉树特点:
- 只有最后两层可能出现叶子结点
- 最多只有1个度为1的结点
- i<=n/2向下取整为分支结点,否则为叶子结点
二叉树常考性质:
- 叶子结点数比二分支结点数多1.
- 完全二叉树高度为log2(n+1)向上取整或者为log2(n)向下取整+1
- 对于完全二叉树,度为1的结点不是1就是0,所以给出结点树就可以算出度为0,1,2对应结点个数。