数据结构实验报告_第1页
数据结构实验报告_第2页
数据结构实验报告_第3页
数据结构实验报告_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、标准报告示范文本 | Excellent Model Text 资料编码:CYKJ-FW-722编号:_数据结构实验报告编辑:_日期:_单位:_数据结构实验报告用户指南:该报告资料适用于任务完成后进行全面的总结,从中深入细致地回顾、检查,找出成绩与缺点、胜利与失败、经验与教训,并在此基础上对前段工作作出客观评价,使得所有人员对问题的认识更一致,思想更统一。可通过修改使用,也可以直接沿用本模板进行快速编辑。一.实验内容:实现哈夫曼编码的生成算法。二.实验目的:1、使学生熟练掌握哈夫曼树的生成算法。2、熟练掌握哈夫曼编码的方法。三.问题描述:已知n个字符在原文中出现的频率,求它们的哈夫曼编码。1、

2、读入n个字符,以及字符的权值,试建立一棵Huffman树。2、根据生成的Huffman树,求每个字符的Huffman编码。并对给定的待编码字符序列进行编码,并输出。四.问题的实现(1)郝夫曼树的存储表示typedef structunsigned int weight;unsigned int parent,lchild,rchild;HTNode,*HuffmanTree; /动态分配数组存储郝夫曼树郝夫曼编码的存储表示typedef char* *HuffmanCode;/动态分配数组存储郝夫曼编码(2)主要的实现思路:a.首先定义郝夫曼树的存储形式,这里使用了数组b.用select遍历n

3、个字符,找出权值最小的两个c.构造郝夫曼树HT,并求出n个字符的郝夫曼编码HC总结1.基本上没有什么太大的问题,在调用select这个函数时,想把权值最小的两个结点的序号带回HuffmanCoding,所以把那2个序号设置成了引用。2.在编程过程中,在什么时候分配内存,什么时候初始化花的时间比较长3.最后基本上实现后,发现结果仍然存在问题,经过分步调试,发现了特别低级的输入错误。把HTi.weight=HTs1.weight+HTs2.weight;中的s2写成了i附:/动态分配数组存储郝夫曼树typedef structint weight; /字符的权值int parent,lchild,

4、rchild;HTNode,*HuffmanTree;/动态分配数组存储郝夫曼编码typedef char* *HuffmanCode;/选择n个(这里是k=n)节点中权值最小的两个结点void Select(HuffmanTree &HT,int k,int &s1,int &s2) int i;i=1;while(iweight=*w;p-parent=p-rchild=p-lchild=0;for(;iweight=p-parent=p-rchild=p-lchild=0;for(i=n+1;in;w=(int*)malloc(n+1)*sizeof(int); /记录权值,号单元未用ch=(char*)malloc(n+1)*sizeof(char);/记录字符,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论