文件名称:
哈夫曼编/译码器 二叉树、树、森林的表示及操作
开发工具:
文件大小: 2kb
下载次数: 0
上传时间: 2009-05-09
详细说明: 一、问题描述 利用哈夫曼编码进行通信可以大大提高1言道利用率,缩短信息传速时间,降低传输成本。但是.这要求在发送端通过一个编码系统对待传数据预先编码.在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输俏息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。 二、基本要求 一个完挂的系统应具有以下功能: (1) I:初始化(Initialization).从终端读入字符集大小n,以及n个字符和二个权值.建立哈夫曼树.井将它存于文件卜主怕丁h fmTree中. (2) E:编码(Encoding)。利用以建好的哈夫曼树(如不在内存.则从文件hfmTree中读入),对文件ToBeT-n中的正文进行编码.然后将结果存入文件CodeFile中。 (3) D:译码(Decoding).利用已建好的哈夫受树将文件CodeFile中的代码进行译码,结果存入文件TextFiie中. (4) P:印代码文件(Print).将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CxdePrin中. (5) T:印哈夫受树(Tree printing).将已在内存中的哈夫垦树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼材写入文件丁TreePint中。 三、需求分析 1、建立哈夫曼树。 2、 编码:即将文本文件中的每个字符用huffman编码代替,并写入二进制文件中。也就是说,压缩文件是一个记录文件内容的二进制流。 3、译码:将二进制文件还原为文本文件。 四、概要设计 由于一棵有n个叶子结点的哈夫曼树共有2n-1个结点,考虑到程序的执行效率,可以将二叉树存放在连续空间里(静态链表),空间的每个结点内仍有左子树、右子树、双亲等指针,以便译码和解码。即存储在一个大小为2n-1的一维数组中,每个结点的结构为: struct node{ int w; int flag; char c; struct node *plink,*llink,*rlink; char code[50]; }*num[100],*root; ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.