
哈夫曼编解码器I:初始化(Initialization)。E:编码(Encoding)。D:译码(Decoding)。P:印代...
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
(1)系统首先进行初始化(Initialization),通过终端读取字符集大小n,以及n个字符和对应的n个权值,进而构建哈夫曼树并将其存储于文件hfmTree中。(2)随后,程序进入编码(Encoding)阶段,利用先前构建好的哈夫曼树(若树不在内存中,则从文件htmTree中加载),对ToBeTran文件中包含的正文数据进行编码操作,并将编码结果保存至文件CodeFile中。(3)接着,执行译码(Decoding)功能,借助已建立的哈夫曼树对CodeFile中的代码进行解码处理,并将解码结果写入到TextFile文件中。(4)最后,程序提供印代码文件(Print)的功能,将CodeFile的内容以紧凑的格式呈现于终端屏幕上,每行显示50个代码。同时,将此字符形式的编码信息也写入到名为CodePrint的文件中。(5)此外,程序还支持印哈夫曼树(Tree Printing),以直观的方式(例如树形或凹入表形式)在终端上展示内存中的哈夫曼树结构,并同时将此字符形式的哈夫曼树信息保存至文件TreePrint中。[测试数据] (1)针对某系统在通信联络中仅可能出现8种字符及其各自的概率分布(分别为0.05, 0.29, 0.07, 0.08, 0.14, 0.23, 0.03, 0.11),设计并实现相应的哈夫曼编码方案。利用该数据对程序进行调试验证。(2) 基于下表提供的实际统计数据中的字符集和频率信息,建立哈夫曼树;并实现“THIS PROGRAM IS MY FAVORITE”报文的编码和译码功能。具体而言:
字符集:A B C D E F G H I J K L M
频度:186 64 13 22 32 103 21 15 47 57 1 5 32 20
字符集:N O P Q R S T U V W X Y Z
频度:57 63 15 1 48 51 80 23 8 18 1 16
全部评论 (0)


