哈夫曼编码(初赛)

对于一个序列,给定我们在这个序列中出现过的数以及出现次数,我们可以求得每一个数的二进制编码,使得表达这个序列的长度最短。 比如说: 我们每次取出出现次数最少的两个数,删除,并将他们的和放入优先队列。 相对应的,我们也要在合并的同时建一棵二叉树 出现次数少的在左,大的在右。 向左儿子的边为0,向右儿子的边为1。 所以一个序列建出来的二叉树不唯一。 例如: 这也是一种合法的二叉树。 所以我们得到了每个
相关文章
相关标签/搜索