习题4.1 4.2 4.3
解答:三题考察树的基本性质,以下贴出树的基本概念:
- 结点的度:节点拥有子树的数目
- 叶子:度为0的结点
- 分支结点:度不为0的结点
- 树的度:树中结点的最大的度
- 层次:根结点的层次为1,其余结点的层次等于该结点的双亲结点的层次加1
- 树的高度:树中结点的最大层次
- 无序树:如果树中结点的各子树之间的次序是不重要的,可以交换位置
- 有序树:如果树中结点的各子树之间的次序是重要的, 不可以交换位置
- 森林:0个或多个不相交的树组成。对森林加上一个根,森林即成为树;删去根,树即成为森林
习题4.4 证明在N个节点的二叉树中,存在N+1个null链,代表N+1个儿子
解答:设N个节点的二叉树中存在x个null链,在此只需证明x=N+1即可。
再设度为0的节点数为n0,度为1的节点数为n1,度为2的节点数为n2
那么
N=n0+n1+n2(式1)
又因为度为1的n0有2n0个null链,度为1的n1有n1个null链
那么
x=2n0+n1(式2)
又因度为0的n0没有子节点,n1有一个子节点,n2有两个子节点,那么树中所有的孩子总数为n1+2*n2,根节点没有父节点但是也是一个节点,
N=n1+2*n2+1(式3)
将式1,3合并后可得
n0=n2+1
由式3可得
n1=N-2n2-1
带入式2可得
x=2n0+n1=2n2+2+N-2n2-1=N+1
原命题得证。
习题4.5 证明在高度为h的二叉树中,节点的最大个数是2^(h+1)-1
解答:在这里需要先声明一下,本书对于叶子节点的高度定义为0,因此当只有根节点一个节点的时候,树的高度为0,与一般理解的树的高度有点不同。
所以节点的最大个数
n=1+2+4...+2^h=2^(h+1)-1
原命题得证。