1.n0=n2+1
设非空二叉树中度为0、1和2的结点个数分别为n0、n1和n2,则n0=n2+1,即叶子结点比2分支结点多一个。
假设树中结点总数为n,则
①n=n0 + n1 + n2(二叉树中只可能有度为0,1,2的结点)
②
(树的结点树=总度数+1)
度为1的结点有n1个,度为2的结点有n2个,由于度为2的每个结点又有两个孩子结点所以为
,再加上一个根结点:
② - ① 得到:n0=n2+1
哈夫曼树的相关计算就可以用这个:
哈夫曼树只有度为0和2的结点,所以联立:
① n0=n2+1② n0+n2=115
也可以用这个结论:
n个结点,两两结合为一棵树,总共需要合并n-1次,每一次合并都会增加一个结点,所以哈夫曼树的结点总数为n+n-1=2n-1个。
答案:C
答案:C
设非叶结点数为x,由结点数=结点度数+1:x+m=xm+1
补充:
(1) 哈夫曼树的带权路径长度:
① 树中所有叶结点的带权路径长度之和(WPL,Weighted Path Length)
注:树的路径长度是指根到每个结点的路径长的总和。根到每个结点的路径长度的最大值应是树的高度-1,注意与这里做区别。
② 所有分支结点的权值之和(这个也可以表示要注意)
可以自己验证一下:
这棵树的带权路径长度
=1*7+2*3+3*2+4*1+4*2=31
(2) 加权平均长度:
计算得到的WPL与各编码的权值之和的比值:130/80+10+2+8=13/10
2.对于完全二叉树,可以由结点数n推出度为0、1和2的结点个数为n0、n1和n2
完全二叉树最多只有一个度为1的结点,即:n1=0或1
二叉树中,n0=n2+1,那么n0+n2一定是奇数
若完全二叉树有 2k 个(偶数)个结点,则必有n1=1, n0=k,n2=k-1
若完全二叉树有 2k-1 个(奇数)个结点,则必有n1=0,n0=k,n2=k-1