额额,王道书上自己说哈夫曼树是带权路径长度最小的二叉树,结果后面习题来了个度为m的哈夫曼树让人猝不及防。上网了解后得知在该树中结点的度均为m或者0(刚好的情况下)。
题目是:若度为m的哈夫曼树中,叶子结点个数为n,则非叶子结点个数为( ⌈(n-1)/(m-1)⌉ )
个人理解是 树的分支数等于m × 度为m的结点数,同时也等于树的总结点数-1(所有树通用的性质),这样列等式:
m *a= m+n-1
解得非叶子结点个数a=(n-1)/(m-1),当然这是结点个数正好的情况,不正好的情况只能是有一个结点的度是小于m,此时相对于正好的情况来说叶子结点个数n更小(非叶子结点数与正好的情况相同),所以此时按式子求出的非叶子结点的个数是小于原情况的一个非整数,需要向上取整,变成( ⌈(n-1)/(m-1)⌉ )。
“初学者不懂事,写着玩的,大伙别太在意,”