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的主要内容,如果未能解决你的问题,请参考以下文章