二叉树的定义
二叉树是有n个结点的有限集合
- 集合或者为空
- 或由根节点和不相交的左右子树构成
- 左右子树同样是二叉树
非空二叉树,每个结点最多有两个子树
左右子树不能任意交换
为特殊有序树,所以若一个结点只有一个子树,则必须为左子树
二叉树的性质(无特别标注均只对二叉树有效)
二叉树有满二叉树和完全二叉树
1.某层->某层节点数
- 在二叉树的第i层上至多有2^(i-1)个结点。
- i层上的最大节点数是i-1层上的最大节点个数的两倍。
2.深度->节点数,逆推性质4
- 深度为h的二叉树中最多有(2^h)-1个节点。
3.叶子节点数->度为二的节点数;度为二的节点数->叶子节点数;节点数->叶子节点数
- 对任意二叉树,叶子节点数为n0,度为2的节点数为n2,n0=n2+1.
- 满二叉树中节点数n,叶子节点数为==(n+1)/2==.
4.节点数->深度
- n个节点的完全二叉树,深度为【log2(n)】+1;
5.已知结点数->深度,推出每个结点的双亲结点和孩子结点
- n个节点的完全二叉树按层次有:
- 结点i>1,双亲结点:i/2
- 2i>n,i没有左孩子,i为叶子节点
- 2i<=n且2i+1<=n,i的左孩子结点2i,右孩子结点为2i+1,不满足则没有