二叉树有五种形态
- 空树
- 只有根节点
- 只有左子树
- 只有右子树
- 左右子树都有
二叉树的定义
二叉树是一种树形结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。
二叉树的特性
- 二叉树的第i层最多有2^(i-1)个节点。
- 深度为k的二叉树最多有2^k-1个节点。
- 对于任意一棵二叉树,如果其叶节点数为N0,而度数为2的节点总数为N2,则N0=N2+1。
二叉树的第i层最多有2^(i-1)个节点的推导过程
- 当i=1时,第一层只有一个根节点,即2^(1-1)=1个节点,结论成立。
- 假设当i=k时,第k层最多有2^(k-1)个节点,即左右子树都满二叉树。
- 当i=k+1时,第k+1层的节点是第k层节点的左右子树,而第k层最多有2^(k-1)个节点,所以第k+1层最多有2^(k-1)个左子节点和2^(k-1)个右子节点,即2^(k-1)+2^(k-1)=2^k个节点。
- 综上所述,二叉树的第i层最多有2^(i-1)个节点。
深度为k的二叉树最多有2^k-1个节点的推导过程
- 当k=1时,深度为1的二叉树只有一个根节点,即2^1-1=1个节点,结论成立。
- 假设当k=m时,深度为m的二叉树最多有2^m-1个节点。
- 当k=m+1时,深度为m+1的二叉树的节点是深度为m的二叉树的左右子树,而深度为m的二叉树最多有2^m-1个节点,所以深度为m+1的二叉树最多有2^(m+1)-1个节点。
- 综上所述,深度为k的二叉树最多有2^k-1个节点。
对于任意一棵二叉树,如果其叶节点数为N0,而度数为2的节点总数为N2,则N0=N2+1,的推导过程
- 对于一棵二叉树,其所有节点的度数之和等于2的节点数乘以2,即∑(所有节点的度数)=2*N2。
- 对于一棵二叉树,其所有节点的度数之和等于所有节点的子节点数加1,即∑(所有节点的度数)=N0+N1+N22=2N0-1+N2*2。
- 将上述两个式子相等,得到2N2=2N0-1+N2*2,即N0=N2+1。
- 综上所述,对于任意一棵二叉树,其叶节点数为N0,而度数为2的节点总数为N2,则N0=N2+1。
什么是完全二叉树
完全二叉树是一种特殊的二叉树,除了最后一层外,每一层的节点数都达到最大值,最后一层的节点都靠左排列。 完全二叉树的特性
- 深度为k的完全二叉树,其节点数最多为2^(k+1)-1,最少为2^k。
- 对于深度为k的完全二叉树,其第k层的节点数为2^(k-1)个,其余各层节点数均为最大值,即2^(k-1)个。
- 若设深度为k的完全二叉树的节点数为n,则其任意节点:
- 若为非叶节点,则其左右子节点编号分别为2i和2i+1;
- 若为叶节点,则其编号为n-(2^k-1)至n之间,其中i为该叶节点在该层中的序号(序号从左往右,从1开始)。