B.5-1
自由树和以 为根的有根树如下:
![]()
以 为根的有序树如下:
![]()
以 为根的二叉树如下:
![]()
B.5-2
由于存在 , 到 都存在路径。因此 的无向图版本 是一个连通图。
考虑使用反证法证明这是一棵树。假设 中存在一个环 ,其中 。
那么,由于 是 DAG,从 到 将有一条路径。那么同样的,从 到 都有各自的路径。
![]()
如图,虚线箭头 表示这 从 有路径可达,实线箭头则意味着有一条有向边从 到 。
由于无向图 存在环,考虑为边 标记上箭头。可见,如果标记的是 ,那么从 到 存在两条有向路径 和 ,违反了路径中的唯一性;反之亦然。
因此,这个连通图 不应该存在环,因此 是一棵树。
B.5-3
![]()
假设 是二叉树 中的 度节点数, 是二叉树 的叶子节点数。那么问题转化成证明对于所有二叉树 ,都有 。
考虑只有一个节点的树 ,那么 成立。
以下分别按照两种情况归纳:
1
由上图构造出来的树中,左子树 或者右子树 为空。不失一般性,假设非空的是 。那么新构造的树 中,多了一个 度节点 。此时 ,仍有 。
2
新构造出来的树中,左子树 或者右子树 都非空。那么有 。那么新构造的树 中,多了一个 度节点 。那么 。
那么有:
。
因此原结论成立。
假设 是满二叉树 的内部节点数, 是满二叉树 的叶子节点数。那么问题转化成证明对于所有满二叉树 ,都有 。
考虑只有一个节点的树 (可以发现这是满二叉树)。那么 成立。
如果 都是满二叉树,那么如图构造的树 一定也是满二叉树。
目前已经满足 ,考虑 和 的关系。
不难发现, 是 的内部节点,因此 。而叶子节点数直接相加即可,因此有 。
那么有:
。
因此原结论成立。
B.5-4
本题将使用数学归纳法进行证明。假设构造出的 个叶节点的满二叉树为 。
当 时,不难发现只有 个节点的树为满二叉树 ,此时恰有一个叶节点。
当 时,假设从 个叶节点的满二叉树都能构造出,考虑题目 8.5-3 中的图。令 ,那么节点 的度数为 ,因此不是叶子节点。由 新构造出的树恰好维持着满二叉树的性质,并且有 个叶子节点。这颗新构造出来的满二叉树即为 。
B.5-5
令 为有 个节点的二叉树的高度的下界。也就是说,目标是证明 。
可以发现对于 , 必定成立。因为节点数越多,数的深度的下界肯定越高。
当树只有 个节点时,树的高度为恰好为 ,原结论成立。
假设对于 ,原结论均成立。考虑 个节点时的树。
当 不是 次幂时,有 。那么 。证明结束。
否则,假设左子树有 个节点,那么右子树有 个节点。
那么按照题目 8.5-3 中的图,可以得到, 成立。即:
那么当 时,上面的最小值能够取到。因此有 。原结论成立,证明结束。
B.5-6
本题将使用数学归纳法进行证明。
假设 是满二叉树 的内部节点数, 是满二叉树 的叶子节点数, 为树的内部路径, 为树的外部路径。那么原结论化为,证明对于所有的满二叉树 ,都有 。
考虑只有一个节点的树 (可以发现这是满二叉树)。有 ,因此 成立。
如题目 8.5-3 中的图所示,如果 都是满二叉树,那么构造的树 一定也是满二叉树。注意到,当 如此被构造后,原来属于子树 中所有节点的深度都增加了 。并且都满足 。
那么根据 的定义可以写出 。注意后面两项产生的原因是:由于 构造出来后,左子树的 个内部节点和右子树的 个节点深度都增加了 。
类似的,根据 的定义,可以写出 。
那么有:
变换 使用了题目 8.5-3 中的结论:。对于变换 ,由于 是 的内部节点,因此 。
原结论成立。
B.5-7
本题将使用数学归纳法进行证明。
为方便描述,令 表示树 中的所有叶节点。那么本题的目标则是证明 。
考虑一棵空树 ,没有叶节点。因此 ,原结论成立。
考虑一棵只有一个节点的树 ,恰好有一个叶节点。因此 ,原结论成立。
如题目 8.5-3 中的图所示,假设子树 都满足 。注意到,新构造出来的树 中,原来属于子树 中所有节点的深度都增加了 。这意味着,对于 中所有的叶子节点,其新权值为旧权值的 。
那么根据刚刚的假设,可以得到
因此,有
原结论成立。
B.5-8
本题将使用反证法进行证明。
假设这棵树为 。由于叶节点数量超过 。因此根据 8.5-3 的结论,这棵树必定存在一个内部节点 。考虑使用 节点定根,使 成为一棵有根树。
令 表示以 为根的子树中,叶节点的个数。那么按照题意有 。
假设不存在任何节点 ,使得 成立。也就是说,对于所有节点 ,要么 ,要么 。
考虑构造树 中一条从根节点到某个叶子的路径 ,其中 是某个叶子,即 。对于 ,构造方式如下:
- 如果 有两个子节点,设其为 。如果 ,那么 ,否则 。
- 如果 有一个子节点,那么 是 的那个唯一一个子节点。
那么按照这个构造方式, 都成立。因此序列 是一个不递减序列。
考虑自顶向下遍历这条路径。如果当前节点 满足 ,那么 为所求节点,证明结束。否则,如果存在某个 ,使得 成立,那么得到 ,与构造的 序列的性质矛盾。
因此原结论成立。