课程设计报告

发布 2022-10-01 04:44:28 阅读 1134

合肥学院。

计算机科学与技术系。

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语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...