二叉树的定义
二叉树是由 n ( n ≥0 ) 个结点组成的有限集
合,该集合或者为空,或者是由一个根结点加
上两棵分别称为左子树和右子树的、互不相交
的二叉树组成。
合,该集合或者为空,或者是由一个根结点加
上两棵分别称为左子树和右子树的、互不相交
的二叉树组成。
特殊二叉树
v定义1:满二叉树 (Full Binary Tree)
n如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上,则称这类二叉树为满二叉树。
v定义2:完全二叉树 (Complete Binary Tree)
n如果一棵具有n个结点的高度为k的二叉树,它的每一个结点都与高度为k的满二叉树中编号为
1—n的结点一一对应,则称这棵二叉树为完全二叉树。(从上到下从左到右编号)。
v
完全二叉树的叶结点仅出现在最下面两层
n最下层的叶结点一定出现在左边
n倒数第二层的叶结点一定出现在右边
v
完全二叉树中度为1的结点只有左孩子
v
同样结点数的二叉树,完全二叉树的高度最小
v
性质1:
n在二叉树的第
i层最多有
2i-1个结点。(i ≥ 1)
v
性质2:
n深度为
k的二叉树最多有
2k-1个结点。(k ≥ 0)
v
性质3
n对任何一棵二叉树,如果其叶结点有
n
0个,度为2的非叶结点有
n
2个,则有
n
0
=n
2
+1。
证明:假设二叉树中度1的结点有 n 1个且总结点为 n个,则:
n = n 0 + n 1 + n 2
假设二叉树中连接父结点与子结点间的边为 e条,则:
e = n 1 + 2n 2 = n – 1
所以:
n 0 =n 2 +1。
证明:假设二叉树中度1的结点有 n 1个且总结点为 n个,则:
n = n 0 + n 1 + n 2
假设二叉树中连接父结点与子结点间的边为 e条,则:
e = n 1 + 2n 2 = n – 1
所以:
n 0 =n 2 +1。
v
性质4
n具有
n个结点的完全二叉树的高度为
log
2
n + 1 。
证明:假设这 n 个结点组成的完全二叉树高度为 k ,则:
2 k-1 -1 < n ≤ 2 k -1
因为 n 为整数,所以:
2 k -1 ≤ n < 2 k
取对数:
k-1 ≤ log 2 n < k
因为k为整数,所以:
k= log 2 n + 1
证明:假设这 n 个结点组成的完全二叉树高度为 k ,则:
2 k-1 -1 < n ≤ 2 k -1
因为 n 为整数,所以:
2 k -1 ≤ n < 2 k
取对数:
k-1 ≤ log 2 n < k
因为k为整数,所以:
k= log 2 n + 1
v
性质5
n一棵有
n个结点的二叉树(高度为
log
2
n+ 1),按层次对结点进行编号(从上到下,从左到右),对任意结点
i有:
• 如果如果 i =
• 如果如果 i =