数据结构与算法分析课后习题第四章:树

习题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

原命题得证。

猜你喜欢

转载自www.cnblogs.com/benjamin4git/p/10126677.html