数据结构实验报告模板

数据结构实验报告姓名:单位:时间:编号:FS46400数据结构实验报告使用备注:该资料可用于在一定周期内的结果进行筛查,评估,并对成果的不足进行分析,以便从中吸取经验教训并形成今后的对策。1.实验内容:实现哈XX编码的生成算法。2.实验目的:

3、使学生熟练掌握哈XX树的生成算法。

4、熟练掌握哈XX编码的方法。5.问题描述:已知n个字符在原文中由现的频率,求它们的哈XX编码。

6、读入n个字符,以及字符的权值,试建立一棵Huffman树。

7、根据生成的Huffman树,求每个字符的Huffman编码。并对给定的待编码字符序列进行编码,并输由。四.问题的实现

(1)郝夫曼树的存储表示tyedefstructunsignedintweight;unsignedintarent,lchild,rchild;HTNode,_HuffmanTree;动态分配数组存储郝夫曼树郝夫曼编码的存储表示tyedefchar__HuffmanCode;动态分配数组存储郝XX编码

(2)主要的实现思路:a.首先定义郝XX树的存储形式,这里使用了数组b.用select遍历n个字符,找由权值最小的两个c.构造郝XX树HT,并求生n个字符的郝XX编码HC总结1.基本上没有什么太大的问题,在调用select这个函数时,想把权值最小的两个结点的序号带回HuffmanCoding,所以把那2个序号设置成了引用。2.在编程过程中,在什么时候分配内存,什么时候初始化花的时间比较长3.最后基本上实现后,发现结果仍然存在问题,经过分步调试,发现了特别低级的输入错误。把XXX.weight+XXX;中的s2写成了i附:/动态分配数组存储郝XX树tyedefstructintweight;/字符的权值intarent,lchild,rchild;HTNode,_HuffmanTree;/动态分配数组存储郝XX编码tyedefchar__HuffmanCode;选择n个(这里是k=n)节点中权值最小的两个结点voidSelect(HuffmanTreeHT,intk,ints1,ints2)inti;i=1;while(iweight=_w;-arent=-rchild=-lchild=0;for(;iweight=-arent=-rchild=-lchild=0;for(i=n+1;in;w=(int_)malloc(n+1)_sizeof(int);记录权值,号单元未用ch=(char_)malloc(n+1)_sizeof(char);记录字符,号单元未用cout依次输入待编码的字符data及其权值weightfor(i=1;i=n;i+)coutdata

预览已结束,下载原文档直接使用
查看全文
若对以上有内容有疑问请反馈或举报举报
声明:
您购买的是此内容的word文档,付费前可通过免费阅读辨别合同。非质量问题不退款,如需帮助可咨询客服【客服微信】