码迷,mamicode.com
首页 > 其他好文 > 详细

哈夫曼解码编码实现

时间:2018-12-12 23:48:04      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:报告   另一个   文件的   2018年   测试报告   原理   http   课程   weight   

20172323 2018-2019-1 《程序设计与数据结构》课堂测试报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 李楠
学号: 20172330
实验教师:王志强老师
测试日期:2018年12月10日
必修/选修: 必修

1.测试内容

哈夫曼编码测试
设有字符集:S={a,b,c,d,e,f,g,h,i,j,k,l,m,n.o.p.q,r,s,t,u,v,w,x,y,z}。
给定一个包含26个英文字母的文件,统计每个字符出现的概率,根据计算的概率构造一颗哈夫曼树。
并完成对英文文件的编码和解码。
要求:
(1)准备一个包含26个英文字母的英文文件(可以不包含标点符号等),统计各个字符的概率
(2)构造哈夫曼树
(3)对英文文件进行编码,输出一个编码后的文件
(4)对编码文件进行解码,输出一个解码后的文件
(5)撰写博客记录实验的设计和实现过程,并将源代码传到码云
(6)把实验结果截图上传到云班课

2. 测试过程及结果

基本原理:

哈夫曼树:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

路径: 树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。

路径长度:路径上的分枝数目称作路径长度。

树的路径长度:从树根到每一个结点的路径长度之和。

结点的带权路径长度:在一棵树中,如果其结点上附带有一个权值,通常把该结点的路径长度与该结点上的权值之积称为该结点的带权路径长度(weighted path length)

树的带权路径长度:如果树中每个叶子上都带有一个权值,则把树中所有叶子的带权路径长度之和称为树的带权路径长度。

3. 代码链接

(https://gitee.com/CS-IMIS-23/linan20172330newterm)

4. 测试过程中遇到的问题和解决过程

5.参考资料

哈夫曼解码编码实现

标签:报告   另一个   文件的   2018年   测试报告   原理   http   课程   weight   

原文地址:https://www.cnblogs.com/linanlalala/p/10111053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!