- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计
PAGE 15
程序设计(大作业)报告
课程名称:数据结构课程设计
设计题目:哈夫曼编码器
院 系:信息技术学院
班 级:计算机科学与技术2 班
设 计 者:
学 号:
指导教师:
设计时间:
昆明学院
昆明学院课程设计(大作业)任务书
姓 名: 院 系:信息技术学院
专 业:计算机科学与技术专业 学 号:
任务起止日期:
课程设计题目:哈夫曼编码器
课程设计要求:
(1)初始化:键盘输入n个字符和n个权值,建立哈夫曼树
(2)编码:利用建好的huffman树生成huffman编码
(3)输出编码
(4)字符和频度如下:
① 字符:空格 A B C D E F G H I J K L M N O P Q
频度:186 64 13 22 32 103 21 15 47 57 1 2 32 20 57 63 15 1
② 字符:R S T U V W X Y Z
频度:48 51 80 23 8 18 1 16
工作计划及安排
(1)在上机之前选题
(2)选择合适的数据结构
(3)结点结构的设计
(4)算法设计与分析
(5)程序设计、实现、调试
(6)提交课程设计报告
指导教师签字
年 月 日
课程设计(大作业)成绩
学号:201011010205 姓名: 指导教师: 老师
课程设计题目: 哈夫曼编码器
总结:
通过此次的课程设计使我认识了哈夫曼树的建立与应用,复习了数据结构中的树的存储结构,怎样构造哈夫曼树以及用哈夫曼树进行编码。学习数据结构能使我们为其它课程打好基础,而课程设计作为数据结构中一个重要环节能更好的使我们加深对它的了解。
指导教师评语:
成绩:
填表时间:
指导教师签名:
目录
TOC \o "1-3" \h \z \u 程序设计(大作业)报告 1
昆明学院课程设计(大作业)任务书 2
1.问题描述 5
2.基本要求 5
3.数据结构 5
4.总体设计 5
5.详细设计 6
5.1程序流程图 6
5.2初始化哈夫曼树 7
5.3输入权值函数 7
5.4选择根结点,存放权值最小和次小序号 7
5.5构造哈夫曼树 7
5.6根据哈夫曼树求哈夫曼编码 7
6.测试与调试 7
6.1程序步骤演示 7
6.1.1输入各字符的权值 7
6.1.2输入字符 8
6.1.3得到哈夫曼编码 8
6.2程序测试结果 8
7.源程序清单 10
8.实验心得 13
1.问题描述
构造一棵哈夫曼树,根据所需输入的字符数目,分别输入字符的频度和字符,得到它们相应的编码,也就是设计一个哈夫曼编码器。
2.基本要求
以字符的频度为权值,建立哈夫曼树,求哈夫曼编码。根据字符及权值得到其相应的编码。
3.数据结构
typedef struct
{int weight; /*结点的权值*/
int lchild,rchild,parent; /*左、右孩子及双亲的下标*/
}htnode;
typedef htnode huffmantree[m+1]; /* huffmantree是结构数组类型,其0号单元不用,存储哈夫曼树 */
typedef struct
{char ch; /*存储字符*/
char code[n+1]; /*存放编码位串*/
}codenode;
typedef codenode huffmancode[n+1]; /*huffmancode是结构数组类型,其0号单元不用,存储哈夫曼编码*/
4.总体设计
功能模块划分
void main() //主函数
void inithuffmantree(huffmantree ht) //初始化哈夫曼树函数inithuffmantree()
void inputweight(huffmantree ht) //输入权值函数
void selectmin(huffmantree ht, int i, int *p1, int *p2)
void createhuffmantree(huffm
文档评论(0)