合肥学院。
计算机科学与技术系。
2013~2014学年第二学期。
2014年9月。
题目:设计程序以实现构造哈夫曼树的哈夫曼算法。要求:求解所构造的哈夫曼树的带全路径长度。
根据要求需要:1、规划哈夫曼树的数据类型;
2、完成对哈夫曼树的输入;
3、构造出哈夫曼树;
4、求出哈夫曼树的带权路径长度;
5、输出哈夫曼树的结点信息。
数据结构的选择:
1.由于一棵有n个叶子结点的哈夫曼树上共有2n-1个结点,可以采用为2n-1的数组顺序存储结点信息。每个结点包括四个域:
一个float类型的weight用来存储每个叶子结点的权值,三个int 类型的parent,rchild,lchild用来表示结点的父节点和左右孩子;
结点的类型描述为:
typedef struct
puts("请输入哈夫曼树的权值");
for(i=0;i
for(i=n;i<2*n-1;i++)
tree[p1].parent=tree[p2].parent=i;
tree[i].weight=tree[p1].weight+tree[p2].weight;
sum+=tree[i].weight;//求树的带权路径长度。
tree[i].lchild=p1;
tree[i].rchild=p2;
printf("输出该哈夫曼树的各个结点的值为:");
printf(" weight parent lchild rchild");
for(i=0;i<2*n-1;i++)
printf("%d %4.2f %3d %3d %3d",i,tree[i].weight,tree[i].
parent,tree[i].lchild,tree[i].rchild);
printf("构造的哈夫曼树的带权路径长度为:%.2f",sum);
return 0;
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...