文档详情

数据结构与算法分析》实验报告.doc

发布:2017-03-23约1.12千字共3页下载文档
文本预览下载声明
《数据结构与算法分析》实验报告 姓名 学号_ _____ __年 __月__ __日 上机题目:以静态链表为存储结构,编写给定权值{7,19,2,6,32,3}构造哈夫曼树的算法。 (输出以存储结构表示或以树型显示(90)) 需求分析 输入数据必须为int的整形数据,其数值范围为:2147483647 输出的数据格式为:%d 测试数据的数据为:{7,19,2,6,32,3} 详细设计 该程序采用顺序表的存储结构,其数据结构定义如下: #define n 6 #define m 2*n-1 #define max 100typedef struct {int data; int lchild,rchild,prnt; }hufmtree; 所用数据类型中每个操作的伪码算法如下: 创建哈夫曼树 Program hufm(hufmtree t[m]) FOR i=0;im;i++ TO t[i].data=0; t[i].lchild=0; t[i].rchild=0; t[i].prnt=0; End FOR 输入结点值 FOR i=n;im;i++ TO p1=0;p2=0; small1=max;small2=max FOR j=0;j=i-1;j++ TO IFt[j].prnt?=0 IF(t[j].datasmall1) small2=small1; small1=t[j].data; p2=p1; p1=j;} ELSE IF(t[j].datasmall2) small2=t[j].data; p2=j; t[p1].prnt=i+1; t[p2].prnt=i+1; t[i].lchild=p1+1; t[i].rchild=p2+1; t[i].data=t[p1].data+t[p2].data; END IF END FOR END Hufman 调试分析 调试过程中主要遇到哪些问题?是如何解决的? 开始的时候main函数的数据结构类型定义的与主函数不同,而且缺少返回值,导致最后的结果陷入死循环,通过看书,向同学询问,得以解决。 经验和体会 哈夫曼树又称最优二叉树,此次实验创建哈夫曼树算法,虽然依旧犯了不少错误,但仍解决了。在其中学习了很多,对树有了更深的了解。 测试结果 附件 见 20121183058詹奇.Cpp
显示全部
相似文档