1 / 26
文档名称:

数据结构课程设计实验报告(赫夫曼编码).doc

格式:doc   页数:26
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构课程设计实验报告(赫夫曼编码).doc

上传人:钻石文档库 2013/1/4 文件大小:0 KB

下载得到文件列表

数据结构课程设计实验报告(赫夫曼编码).doc

文档介绍

文档介绍:+
数据结构课程设计
题目:赫夫曼编码
院、系:计算机科学与工程学院
学科专业:计算机科学与技术
学生: 高经典
学号: 090602103
指导教师: 梁晨
2010年12月22日
目录
1课程设计的题目-----------------------------0
2课程设计的目的(设计要解决的问题)----------1
3概要设计(函数划分、总体设计)----------------1
4详细设计(算法、流程图、程序)-----------------2
5调试结果-------------------------- -------32
6课程设计总结---------------- -------------33
7心得体会----------------------------------34
6课程设计总结---------------- -------------33
7心得体会----------------------------------34
二课程设计的目的
<1>巩固构造赫夫曼树的算法。
<2>设计实验用程序实现赫夫曼树的构造。
<3>熟悉用先序、中序或后序的访问方法得到个叶子结点的赫夫曼编码。
三概要设计(函数划分、总体设计)
<一>总体设计
输入一个字符串用结构体链表存储字符串中出现的不同字符及其出现的次数。
定义赫夫曼数的结点结构体,把不同的字符及其在字符串中出现的次数作为叶子结点的元素及其权值,统计叶子结点的个数n,开辟可以存储2*n个结点的顺序表,来赫夫曼树的各个结点,然后按照一定的规则构造赫夫曼树。
开辟一个可以存储叶子结点元素及指向存储其赫夫曼编码链表的指针的顺序表,然后从叶子结点开始向上访问,是左孩子的把“0”接进链表是右孩子的把“1”接进链表,直到根结点,然后把叶子结点的元素及存储其赫夫曼链表的头指针读入顺序表,直到把所有的叶子结点的元素及指向存储其赫夫曼编码链表的头指针读入顺序表,这样得到的赫夫曼编码是倒序的。
从存储其叶子结点及指向存储其赫夫曼编码链表头指针的顺序表表头开始顺序访问各元素,在输出其赫夫曼编码之前,把链表中的编码顺序读入到等长的栈中,然后编码出栈就会得到顺序的赫夫曼编码,直到把所有的叶子结点都访问到。
用一个字符型的指针指向字符串的第一个字符,从存储叶子结点元素及指向存储其赫夫曼编码链表的头指针的顺序表表头开始访问顺序表中的各元素,直到找到叶子结点的元素和当前字符相等就结束访输出赫夫曼编码,回到表头,指针后移,直到输出字符串的最后一个字符的赫夫曼编码,这样就得到输入字符串的赫夫曼编码。
<二>函数划分
该程序有一个主函数和多个子函数,主函数完成对子函数的调用,各子函数实现相应的功能。
子函数:
结点的开辟。
实现对输入字符串中出现的不同字符及其出现字数的信息记录。
用叶子结点构造赫夫曼树。
获得构造的赫夫曼树中所有叶子结点的元素及其赫夫曼编码。
输出各叶子结点元素及其对应的赫夫曼编码。
输出输入的字符串的赫夫曼编码。
调用各子函数
四详细设计(算法、流程图、程序)
<一>算法
<1>创建存储叶子结点元素及其权值的链表
定义结构体node,其数据成员包括,字符型的元素a和整型元素b和指向node的next指针,来存储叶子结点的内容和权值。
定义三个指向node的指针head、p1、p2和字符指针n、t、h,调用setnode()函数开辟一个结点让head指向该结点,p1=head,让n指向输入字符串的第一个元素,当n指向的内容不是‘\0’时,如果n指向字符串的第一个字符,则开辟一个结点,让p2指向该结点,让t指向字符串的第一个元素,当*t!=‘\0’并且*t==*n则r++(r为整型,初始值为0),把p2->a=*n,p2->b=r,p1->next=p2,p1=p2,n++,t回到字符串首;否则i++(i为整型,初始值为1)r=0,j=1;让t指向字符串第一个元素,当*t!=‘\0’,如果*t==*n,r++,t++;让h指向字符串的第一个元素,当h!=n时如果*h==*n就跳出此循环,否则,j++,h++如果i==j则开辟新的结点p2->a=*n,p2->b=r,p1->next=p2,p1=p2
;n++,当把最后一个结点连入链表中,p1->next=NULL,然后把p1=head->next,当p!=NULL时输出结点中叶子结点的元素和对应的权值;最后返回head。
//setnode()函数的算法:设指向node的指针p,用malloc开辟一个node结点并让p指向该结点,返回p。
<2>构造赫夫曼树
定义结构体node1,其数据项字符型a(存放叶子结点元素)

最近更新

新安全生产法知识竞赛试题库【夺冠系列】 43页

新安全生产法知识竞赛试题库及参考答案【模拟.. 43页

最新全国政法队伍教育整顿知识竞赛试题库【完.. 39页

最新全国政法队伍教育整顿知识竞赛试题库附答.. 41页

2025年冷却风扇合作协议书 70页

2025年单相电能表合作协议书 70页

2025年石家庄工商职业学院单招职业适应性测试.. 45页

2025年郑州科技学院单招职业技能考试题库附答.. 45页

2025年黑龙江农垦职业学院单招职业适应性考试.. 43页

2025广东深圳市龙岗区耳鼻咽喉医院招聘8人备考.. 42页

2025成都银行招聘总行专职信用审批人等岗位7人.. 47页

2025浙江温州市城乡规划展示馆讲解员招聘1人考.. 43页

2026年c语言期末测试题(实用) 13页

2026年云南省丽江地区单招职业适应性考试题库.. 44页

2026年国开电大基础写作形考题库(综合题) 37页

2026年宁夏财经职业技术学院单招职业倾向性测.. 44页

2026年河北交通职业技术学院单招职业技能考试.. 45页

吉林省梅河口市第五中学2025-2026学年高一上学.. 12页

2025年青海省玉树藏族自治州单招职业适应性测.. 45页

2025广西柳州市柳江区禁毒委员会办公室招聘编.. 44页

2025福建福州左海高铁有限公司(第二次)招聘.. 49页

2026云南玉溪市红塔区教体系统招聘毕业生30人.. 48页

六年级英语上册第一单元测试题-(含答案) 9页

刮板式花生脱壳机结构设计 39页

广东市政工程资料表格填写范例样本(其他低区仅.. 231页

约瑟的一生PPT精选文档50页文档 50页

药用植物栽培学当归栽培技术课件 28页

自然条件对城市的影响 48页

陈金珠编有机化学全部答案 47页

福建省技工院校学生学籍管理办法【闽人社文〔.. 6页