哈夫曼编码的设计与实现1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华北科技学院计算机学院开放实验
实验报告
实验名称哈夫曼树编码的设计与实现
实验学期2014 至2015 学年第一学期学生所在系部计算机学院
年级2013 专业班级软件工程B13-2班
学生姓名扈鹏程学号201307044213
任课教师栾尚敏
实验成绩
计算机学院制
《哈夫曼树编码的设计与实现》开放实验报告
主程序模块
开始
1、初始化
2、修改字符
修改初始编码字符
初始化哈夫曼链表
1、建树
2、修改字符
建立哈夫曼树
修改初始编码字符
操作选择
退出
编 码
译 码
打印哈夫曼树
1、继续
2、返回上层
3、退出
结束
1
2
1
2
3
3
2
查看字符编码
修改初始编码字符
点代替原来两个结点的位置,其权值为两个子结点的权值只和,然后回到开始的判断。
判断文件指针是否为结束标记
打开文件
读取一个字
符
C==P->C || P==NULL 否
P=P->NEXT
是
C==P->C
P->W++新建结点存储字符,并赋权值为1
关闭文件
是否仅剩下1个结点
是
指针指向头p=head
否
判断是否
是为回车
获取一个字
符
串中存储的编码。再次读取一个字符回到判断处,进行循环。 判断是否有字符是否存在左子树输出字符
处理右子树
处理左子树
是否存在右子树是
是输入要编码的字符
c == p->c 点
输出该字符
c == p->c 存的编码
C!=’\n ’是
否
译
码 输出错误字
符并重新获取字符
C !=‘0’|| C !=‘1’
1、C !=‘0’
2、 C !=‘1’
P=head 输入译码字
符
P=P->lchild
P=P->rchild
C!=’\n ’P->c !=‘\0’输出p->c P=head
获取译码字
符
否
否
是
1
2
是
否
①