- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
以铜为镜,可以正衣冠;以古为镜,可以知兴替;以人为镜,可以明得失。——《旧唐书·魏征列传》
《数据结构》实验报告
班级:学号:姓名:
E-mail:*****************日期:2011年11月22日
◎实验题目:哈夫曼编/译码器
◎实验目的:设计合适的数据结构,熟悉二叉树的构造、遍历,并了解用哈夫曼
树解决字符变长编码问题。。
◎实验内容:通过算法实现,构造合适的数据结构,通过程序界面输入任意一段
字符,通过哈夫曼树的建立与遍历实现将字符按权值编成不等长的0、1代码,
将输入的字符转换成0、1代码并将0、1代码转化回字符,在这些过程中,将所
有的转化的输出保存在指定的文件中。
一、需求分析
1.本程序演示中,输入的字符串长度是未知的,通过计算权值的函数计算字符
串的长度与权值。
2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信
息”之后,由用户在键盘上输入相应数据。
3.程序执行的命令包括:
(1)输入字符串并计算权值;(2)寻找权值最小的两个结点;(3)构建哈
夫曼树并编码;(4)将字符文件转换为代码文件;(5)将代码文件转换为
字符文件;(6)输出文件程序;(7)结束。
4、测试数据:
输入字符串为:sadoijjoiwejmdodocnovikisdujvkmdcsbbyhadsnjsfbhavd
字符编码为:
s:00
a:0110
d:101
o:001
i:1100
j:010
w:111100
e:111101
m:10011
c:11010
n:11011
v:0111
k:11100
u:111110
b:1000
y:111111
h:11101
f:10010
代码为:
常将有日思无日,莫待无时思有时。——《增广贤文》
吾日三省乎吾身。为人谋而不忠乎?与朋友交而不信乎?传不习乎?——《论语》
00001101010011100010010001110011110011110101010011101001101001110
10110110010111110011100110000010111111001001111110010011101110100
00100010001111111110101101010001101101000010010100011101011001111
01
二、概要设计
为实现上述算法,选择循环单链表为本程序的存储结构。
1、基本操作:
Creat_message()
操作结果:通过输入字符串,构造文本文件
Calculate()
初始条件:文本文件已存在
操作结果:计算文本文件中各字符的权值
select()
初始条件:文本文件已存在,并且文件中各字符的权值已求出
操作结果:筛选出所有字符中权值最小的两个字符
HuffmanCoding()
初始条件:文本文件已存在
操作结果:构建哈夫曼树并编码
Transform()
初始条件:哈夫曼树已存在,并且文件已编码
操作结果:将字符文件翻译成代码文件
文档评论(0)