数据结构-哈夫曼树的实验报告(共7页).doc
《数据结构-哈夫曼树的实验报告(共7页).doc》由会员分享,可在线阅读,更多相关《数据结构-哈夫曼树的实验报告(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上软件学院设计性实验报告专业:网络工程 年级/班级: 20132014学年第一学期课程名称数据结构指导教师本组成员学号姓名实验地点实验时间项目名称哈夫曼编/译码系统的设计与实现实验类型设计性一、 实验目的理解哈夫曼树的特征及其应用;在对哈夫曼树进行理解的基础上,构造哈夫曼树,并用构造的哈夫曼树进行编码和译码;通过该实验,使学生对数据结构的应用有更深层次的理解。 二、 实验仪器或设备学院提供公共机房,1台/学生微型计算机。三、 总体设计(设计原理、设计方案及流程等)1 问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发
2、送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(解码)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站设计一个哈夫曼编/译码系统。2一个完整的系统应具有以下功能:1)初始化(Initialzation)。从数据文件DataFile.dat中读入字符及每个字符的权值,建立哈夫曼树HuffTree;2)编码(EnCoding)。用已建好的哈夫曼树,对文件ToBeTran.dat中的文本进行编码形成报文,将报文写在文件Code.txt中;3)译码(Decoding)。利用已建好的哈夫曼树,对文件CodeFile.dat中的代码进
3、行解码形成原文,结果存入文件Textfile.txt中;4)输出(Output): 输出DataFile.dat中出现的字符以及各字符出现的频度(或概率);输出ToBeTran.dat及其报文Code.txt;输出CodeFile.dat及其原文Textfile.txt;要求:所设计的系统应能在程序执行的过程中,根据实际情况(不同的输入)建立DataFile.dat、ToBeTran.dat和CodeFile.dat三个文件,以保证系统的通用性。四、 实验步骤(包括主要步骤、代码分析等)1)编写C语言程序#include#include#include #include #include#de
4、fine TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1typedef struct char data;int weight;int parent,lchild,rchild; HTNode,*HuffmanTree; typedef char *HuffmanCode; void HuffmanCoding(HuffmanTree &HT,HuffmanCode &HC,char *d,int *w,int n) /构造哈弗曼函数HT,构造编码HC void select(HuffmanTree H
5、T,int n,int &s1,int &s2);int m,c,f,j;HuffmanTree p;int i,s1,s2,start;char *cd;m=2*n-1; /m为结点数,n为叶子数 HT=(HuffmanTree)malloc(m+1)*sizeof(HTNode);p=HT;p+;for(i=1;idata=di; /=*d,*w,0,0,0; p-weight=wi;p-parent=0;p-lchild=0;p-rchild=0; for (i=n+1;idata=#; p-weight=0;p-parent=0;p-lchild=0;p-rchild=0; s1=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 哈夫曼树 实验 报告
限制150内