1.0 二叉树的特点
- 每个节点最多有两个子树 就是度为 0 - 2
- 二叉树是有序的
左边的树叫左子树,右边的树叫右子树,即使只有一个子树,也要分出他是左子树还是右子树
为什么说二叉树和树是两种数据结构呢?就是因为二叉树是有序的这个原因
2.0 几种特殊的二叉树
2.1 斜树
只有左子树或者只有右子树
2.2 满二叉树
满二叉树就是所有分支结点都存在左右子树,所有的叶子结点都在同一层上
特点是
- 度只为0 或者只为2
- 所有叶子结点只能在最下层
不会画图是硬伤
2.3 完全二叉树
给上面的满二叉树编号,从左到右,从上到下顺序编号 如图5-15(a)
然后在给另一个二叉树编号,如果这个二叉树的第i个编号和满二叉树的第i个编号位置一样 则就是完全二叉树
3.0 二叉树的性质
- 二叉树的第i层上最多有 个结点
- 在深度为k的二叉树中,最多有个结点
- 在一科二叉树中,如果叶子结点的个数是,度为2的结点个数为 则 = +1 这个上面那两个明白这个就ok
- 具有n个结点的完全二叉树的深度为 这个也很好理解吗 就是对第2条性质的取对数呗
- 对于一个完全二叉树开始从1编号,
- .对于i>1的元素 则它的双亲结点是
- 如果2*i <= n 那么结点i的左孩子为 2i 否则的话没有左孩子
- 如果2*i +1 <= n 那么结点i的右孩子为 2i +1 否则的话没有右孩子