Huffman树

mac2022-06-30  24

一颗k叉Huffman树是如下问题的解:

构造一颗n个叶子节点的k叉树,叶子节点i有权值\(w_i\),使得Σ\(w_i * l_i\)最小,其中\(l_i\)表示叶子节点i到根的距离。


求解使用贪心算法,利用小顶堆维护。

例题:合并果子。

需要注意的一点是,对于k>2的情境,如果最后一轮循环中堆中的节点数不足k个,那么此时的解显然不是最优解。(k==2时不会发生这种情况)

一种解决方案是向树中添加权值为极小值的节点,使得“子节点不足”的情形集中发生在更深的节点上。

转载于:https://www.cnblogs.com/tztqwq/p/11294220.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)