-1;c--) printf("%d",a[c]); prin" /> -1;c--) printf("%d",a[c]); prin" />

全文预览

算法试验二哈夫曼编码

上传者:苏堤漫步 |  格式:doc  |  页数:5 |  大小:203KB

文档介绍
.parent!=-1) { k=huffmantree[j].parent; if(huffmantree[k].lchild==j) a[c]=0; if(huffmantree[k].rchild==j) a[c]=1; c=c+1; j=k; } printf(" 节点%d 的哈夫曼编码为: ",i); for(c=c-1;c>-1;c--) printf("%d",a[c]); printf("\n"); }} void main() { CreatHuffmanTree(); huffmancode(); }-5- 五、实验过程原始记录( 测试数据、图表、计算等) 六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获) 通过本次试验,我了解了哈弗曼编码的全过程,对贪心发也有了更深的了解和认识;同时我对前缀编码的概念也有了初步的了解,对数据压缩的基本方法也有了一定的理解;同时也掌握最优子结构性质的证明方法;掌握贪心法的设计思想并能熟练运用。每次将集合中两个权值最小的二叉树合并成一棵新的二叉树, n-1 次合并后,, 成为最终的一棵哈夫曼树。这既是贪心法的思想: 从某一个最初状态出发, 根据当前的局部最优策略, 以满足约束方程为条件, 以使目标函数最快( 或最慢) 为原则, 在候选集合中进行一系列的选择, 以便尽快构成问题的可行解。每次选择两个权值最小的二叉树时, 规定了较小的为左子树.。此次试验虽然花了较长时间才完成,但我收获很多, 我对哈夫曼树、贪心法和数组与结构体的使用都有了一定的了解,在解解问题时也变得更有耐心。在以后的学习中,要不断的实践和复习理论知识,只有两样结合起来才可以学得更好,才能真正理解所学的知识,也有利于对概念的升华理解。注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

收藏

分享

举报
下载此文档