目录
二叉树
定义:二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称空二叉树),或者由一个结点互不相交的,分别称为根结点的左子树和右子树的二叉树组成。
二叉树的特点
- 每个节点最多有两个结点,也就是说可能有0,1,2个结点。
- 左子树和右子树是有区别的,就算没有左子树,右子树也是在右边。如下图两颗二叉树事不一样的树。
特殊二叉树
斜树
所有结点之后左子树或者右子树的叫斜树,往左边斜的叫左斜树,右边斜的叫右斜树。
满二叉树
满二叉树就是二叉树所有的根结点左右子树都满了,并且所有的叶子结点都在同一层上。
完全二叉树
完全二叉树就是树不要求满,但是要求完全,也就是说,从根结点开始一层一层向下,从左到右,直到最后一个叶子结点的结点不能有空缺。就“完全”了。如下图两棵树就不是完全二叉树。
判定方法就是从上至下一层一层从左到右按照满二叉树编号,如果编号的树去对应目标树的结点中间结点出现空缺。则不满足完全二叉树。如上图树1的10和树2的6和7。
完全二叉树的性质
- 叶子节点只能出现在最下两层。
- 最下一层的叶子结点一定是靠最左边,
- 倒数第二层的叶子结点是在树的最右部分。
- 如果二叉树只有一个孩子,那一定是左孩子。
- 同样结点个数的二叉树,完全二叉树是深度最小。
二叉树的性质
1.在二叉树的第i层至多有2^(i-1)个结点,i>=1。
由数学归纳法,第一层1个,第二层2个,第三层4个可知二叉树的第i层至多有2i-1个结点。
2.深度为k的二叉树总的最多有(2^k) - 1个结点。
深度为1有总的1个,深度为2有总的3个,深度为3有总的7个,深度为k的二叉树总的最多有(2^k) - 1个结点。
3.重点,在二叉树中,叶子结点的个数比度为2的所有根结点多一个。
如图,设图结点数为n,设叶子结点为n0,度为1的结点为n1,度为2的结点数为n2。则n=n0+n1+n2。我们再看连线,度为2的连线有2*n2条,度为1的连线有n1条,总的连线就是n1+2*n2条。我们知道结点数减去1等于连线数,故有n-1=n1+2*n2条。上诉存在n=n0+n1+n2。所以得出n0 = n2 +1。
4.二叉树性质4
5.二叉树性质