树
定义
- 树是一个有 n 个有限结点组成的具有层次关系的集合,每个结点有0个或者多个子结点,没有父结点的结点称为根节点,不允许成环
相关概念
- 结点的度:结点含有的子结点个数
- 树的度:树中最大的结点的度
- 森林:由 m(m ≥ \geq ≥ 0)棵互不相交的树组成的集合
- 无序树:任意结点的子结点之间没有顺序关系,也称为自由树
- 有序树:任意结点的子结点之间有顺序关系
- 完全二叉树:仅最底层结点可能未填满,且最底层结点均在左侧
- 满二叉树:仅存在度为0和度为2的结点的树,且度为0的结点均在同一层
性质
- 对于二叉树,其叶结点数 = 度为2的结点数 + 1
- n个结点的完全二叉树深度为 ⌈ log 2 ( n + 1 ) ⌉ \lceil \log_2 (n + 1) \rceil ⌈log2(n+1)⌉
- 完全二叉树,从上往下、从左往右从1开始依次编号,则编号为 i 的结点其左子结点编号为 2i
遍历
-
深度优先:前中后指的是访问中间父结点的顺序
- 前序遍历
- 中序遍历
- 后序遍历
-
广度优先