实验4 Huffman编码和解码


实验时间

4-6课时。

实验目的

1. 掌握二叉树的存储结构和常用算法。
2. 熟练掌握递归程序设计方法。

问题描述

Huffman编码是二叉树的典型应用之一。给定一个文本文件,对其进行编码和解码,计算压缩比,从而了解数据压缩的基本原理。
待编码的文本文件是C语言的标准库头文件stdio.h

实验内容

1. 对文本文件统计各个字符的出现频率,构造Huffman树。
2. 以图形化的方式打印Huffman树,例如可以逆时针旋转90度打印,如下图所示,或者自己设计打印图形。

3. 以Huffman树对文本文件进行编码,统计编码后的比特数,除以8得到字节数。用原文件的大小(字节数)除以编码后的字节数,即求得压缩比。
4. 将编码后的比特流再进行解码,写入一个新的文本文件,与原文件比较,是否完全一致?比较文件可使用Windows命令行工具fc。