实验报告四:哈夫曼编/译码器
实验题目:哈夫曼编译器
实验目的:熟悉运用哈夫曼编译的相关算法的计算机实现;
复习与文件相关的操作
实验内容:给电文进行哈夫曼编码,给定编码进行哈夫曼译码
一、 需求分析:
本程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示
信息”之后,由用户在键盘上输入相应数据(包括:电文文件名,编码
文件名)
程序的执行命令包括:
从指定的文件中读出要编码的电文;
计算电文中各个字符的权值(在电文中出现的次数);
根据 中的权值构造该电文的哈夫曼树、求出哈夫曼编码;
利用 中的哈夫曼编码对电文编码并将结果储存到指定的位置;
从指定的文件中读出待译码的编码;
根据 中构造的哈夫曼树对读出的编码进行译码并将结果储存在指
定位置;
程序功能:给定电文进行哈夫曼编码,给定编码进行哈夫曼译码
测试数据:
电文进行哈夫曼编码:
测试字符串
结果:
编码的哈夫曼译码:
测试编码串:
结果:
二、 概要设计:
带指向双亲的二叉树作文哈夫曼树的储存结构:
定义:
!
"# #" #!
$%&'(")%*+&!
基本操作:
,#-%*+&%&"")")
操作初始条件:存在哈夫曼树 %&
操作结果:在 %&./中选择 为 ,且 最小的两个结
点,其序号为是 ,"并返回 01;若失败,则返回 23303;
带两个域的权值结构体:
定义:
"4!
评论0