pta 编程题14 Huffman Codes

Posted bloglxc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pta 编程题14 Huffman Codes相关的知识,希望对你有一定的参考价值。

题目

题目给出一组字母和每个字母的频数,因为哈夫曼编码不唯一,然后给出几组编码,因为哈夫曼编码不唯一,所以让你判断这些编码是否符合是哈夫曼编码的一种。

解题思路:

1、构造哈夫曼树,并求出总代价COST,即各个字母的频数乘以编码长度的和。

2、对于题目给出的每一组编码,判断是否符合哈夫曼编码,即这组编码是否为前缀码,同时代价cost是否等于计算出的哈夫曼树的代价COST。

判断一组编码是否为前缀码的方法:

将这些编码逐个的添加到哈夫曼树中,对于每一个编码字符串,字符串中的每一个字符也逐个扫描,如果是0则向左构造树,1则向右构造树。

需要注意的点:

最小堆数组中的元素类型ElementType为HuffmanTree型。

 

以上是关于pta 编程题14 Huffman Codes的主要内容,如果未能解决你的问题,请参考以下文章

pta 编程题16 Saving James Bond - Easy Version

pta 编程题21 公路村村通

pta 编程题15 列出连通集

pta 编程题13 File Transfer

PTA基础编程题目集——爬动的蠕虫

pta编程题19 Saving James Bond 2