概念
二叉树或为空树,或是有一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。
二叉树的五种基本形态
image
注:二叉树不等同于度不大于2的树,因为若两概念相同,则仅有左子树或仅有右子树的情况就是一种情况。
性质
性质1
在二叉树的第
i层上至多有
2i−1个节点
性质2
深度为
k的二叉树上至多含有
2k−1个节点。
(至少有k个节点)
证明:
思路就是让每一层都拥有最多的子树,即:
20+21+23+......+2k−1=2k−1
推广
满二叉树第
k层的节点个数比其第 1 ~ k-1
层所有的节点多1个。
因为前
k−1层的子树和为
20+21+23+......+2k−2=2k−1
而第
k层的子树有
2k−1个。
性质3
对任何一个二叉树,若他含有
n0个叶子节点,
n2个度为2的节点,则币存在关系式:
n0=n2+1
证明:
设二叉树上节点总数为:
n=n0+n1+n2
二叉树上的分支总数为:
b=n1+2n2
又因为二叉树上的分支总数还可以等于:
b=n−1=n0+n1+n2−1
所以即可推出,
n0=n2+1。
推广
性质4
具有
n个节点的完全二叉树的深度为
⌊log2n⌋+1
证明:
设完全二叉树的深度为
k
则根据性质2得:
2k−1≤n<2k,即
k−1≤log2n<k
又因为
k只能为整数,所以
k=⌊log2n。⌋+1
性质5
若对含
n个结点的完全二叉树从上到下且从左至右进行 1 至
n的编号, 则对完全二叉树中任意一个编号为
i的结点:
- 若
i=1,则该结点是二叉树的根,无双亲, 否则,编号为
⌊i/2⌋的结点为其双亲结点;
- 若
2i>n,则该结点无左孩子,否则,编号为
2n的结点为其左孩子结点;
- 若
2i+1>n,则该结点无右孩子结点,否则,编号为
2i+1的结点为其右孩子结点。
特殊的二叉树
满二叉树
深度为 k 且含有 2k-1 个结点的二叉树
完全二叉树
树中所含的 n 个结点和满二叉树中编号为 1 至 n 的结点一一对应。
若完全二叉树有
k层,则前
k−1层都是满二叉树,第
k层集中在左部。叶节点只会出现在第
k−1层或第
k层。