数据结构课程设计-哈夫曼编码实验报告.doc

数据结构课程设计-哈夫曼编码实验报告.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计-哈夫曼编码实验报告

数据结构课程设计报告 实验二 哈夫曼编码 目录 问题描述及分析 p1 1.问题描述 p1 2.需求分析 p1 功能模块及数据结构描述 p1 1.数据结构描述 p1 2.模块描述 p2 三.主要算法流程描述 p2 1.编码流程图 p3 2.译码流程图 p4 四.使用说明 p5 五.调试分析说明 p6 问题描述及分析 1.问题描述 设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码文件(后缀名.cod);反过来,可将一个编码文件还原为一个文本文件(.txt)。 2.需求分析 (1)输入一个待压缩的文本文件名,统计文本文件中各字符的个数作为权值,生成哈夫曼树; (2)将文本文件利用哈夫曼树进行编码,生成编码文件(后缀名cod); (3)输入一个待解压的压缩文件名称,并利用相应的哈夫曼树将编码序列译码; (4)显示指定的编码文件和文本文件; 3.运行要求 .Windows xp/2003 .VC++6.0(或以上)运行库 功能模块及数据结构描述 1.数据结构描述 typedef struct { long weight; long lchild,rchild,parent; }hfmt; hfmt t[2*256-1]; 存放哈夫曼树结构体,weight为节点权值,lchild,rchild为节点的左右孩子在向量中的下标(为叶节点时,两值为:-1),parent为节点的双亲在向量中的下标(用来区别根与非根节点,值为-1与非-1)。 typedef struct { char bits[256]; long s; }hfmcc; hfmcc cc[256]; 存放哈夫曼编码结构体,s用来指示编码在位串bits[n]中的起始位置。 2.模块描述 图2.1 系统函数 copy函数:根据s的值在位串bits[n]中提取有效编码位数。 HFM函数:对读入的节点权值,生成哈夫曼树。 HFMBM函数:对生成的哈夫曼树进行零一编码,对应于原文件字符。 三.主要算法流程描述 1.编码流程图 图2.2 编码流程图 2.译码流程图 图2.3 译码流程图 四.使用说明 图2.4 生成的文件 本软件默认生成的编码文件名为:a.cod 默认生成的译码文件名为:b.txt 执行提示:输入所要编码的文本文件。 图2.5 编码过程 编码完成,默认生成a.cod文件,等待译码。 输入所要译码的cod文件: 图2.6 译码过程 译码完成,默认生成b.txt文档文件。 五.调试分析说明 表2.1 调试遇到的问题及解决方案 遇到的问题 分类 解决方法 根据所提供的权值不能正确生成哈夫曼树 数据结构基础 哈夫曼树结构体的lchild,rchild,parent用-1初始化,因为0也可能是节点,防止造成冲突 根据生成的哈夫曼树不能有效的生成哈夫曼编码,编码文件中会存在乱码 数据结构基础 所给存储编码的位串数组bits[256]空间大小固定,权值较大的编码长度较短,后半数组空间会有乱码产生,引入函数copy(),根据编码起始位s来截取编码有效位写入文件。 根据编码文件,无法还原生成文本文件,并提示编码错误。 数据结构基础 开始节点i=256*2-1为空节点,其左右孩子指向未知地址空间,无法进入哈夫曼树的扫描,将开始节点改为i=256*2-2,此节点才是哈夫曼树的根节点,问题得以解决。 哈夫曼编码无法与原文本字符对应,在编码结构体添加字符变量去存储相应字符,得不到期望的效果。 C语言基础 构造哈夫曼树时,将其字符的ASCLL码的值与哈夫曼树结构体数组的下标相对应,译码时,直接将其下标当作字符写入文件,问题得以解决。 六.参考文献 严蔚敏,吴伟民,《数据结构》(C语言版)[

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档