对于二叉树,你应该知道的
- 节点、根节点、父节点、子节点、兄弟节点
- 一棵树可以没有任何节点,成为空数
- 一棵树可以只有1个节点,也就是只有根节点
- 子树、左子树、右子树
- 节点的度:子树的个数
- 树的度:所有节点度中的最大值
- 叶子节点:度为0的节点
- 非叶子节点:度不为0的节点
- 层数:根节点在第 1 层,根节点的子节点在第 2 层
- 节点的深度(depth):从根节点到当前节点的唯一路径上的节点总数
- 树的深度:所有节点深度中的最大值
- 节点的高度:从当前节点到最远叶子节点的路径上的节点总数
- 树的高度:所以节点高度中的最大值
- 树的深度 == 树的高度
树的分类
- 有序树:树中任意节点的子节点之间有顺序关系
- 无序树:数中任意节点的子节点之间没有顺序关系,也成“自由树”
- 森林:由m(m >= 0)棵互不相交的树组成的集合
接下来就是重点了–二叉树
- 特点:
- 每个节点的度最大为2(最多拥有2棵子树)
- 左子树和右子树是有顺序的
- 即使某节点只有一棵子树,也要区分左右子树
二叉树是有序树还是无序树?
有序树
- 性质:
- 非空二叉树的第i层,最多有2的(i-1)次幂个节点(i >= 1)
- 在高度为h的二叉树上最多有(2的(h)次幂)-1个节点(h >= 1)
- 对于任何一棵非空二叉树,如果叶子节点个数为n0,度为2的节点个数为n2,则有:n0 = n2 + 1
- 假设度为1的节点个数为n1,那么二叉树的节点总数n = n0 + n1 + n2 - 1,因此n0 = n2 + 1