对于无法构成严格的 k叉树的归并树,则需要补充几个长度为 0的虚段,在进行 k叉哈夫曼树的构造。
如何确定需要补充长度为 0的虚段,在进行 k叉哈夫曼树的构造
k叉的最佳归并树一定是一颗严格的k叉树,即树种只包含度为 k,度为 0的结点。
设度为 k的结点有 nk个,度为 0的结点有 n0个,归并树总结点树 = n则:
初始归并段数量 + 虚段数量 = n0
n = n0 +nk
Knk = n - 1 K:表示K叉 nk:表示度为k的结点有 nk个
则有:
n0 = (k - 1)nk + 1 --> nk = (n0 - 1)/(k - 1) 如果是严格的 k叉树,则一定能除的尽
(1)若(初始归并段数量 - 1)%(k-1) = 0,说明刚好可以构成严格的 k叉树,此时不需要添加虚段
(2)若(初始归并段数量 - 1) % (k-1)= u ,则需要补充(k - 1) - u个虚段
这段的意思就是 (初始归并段数量 - 1:表示叶子结点树减一个,nk = (n0 - 1)/(k - 1) 公式取余则不需要添加虚段)
知识点总结: