全文预览

大数据结构哈夫曼编译码器

上传者:苏堤漫步 |  格式:docx  |  页数:24 |  大小:199KB

文档介绍
符对应的数组bits中去即可。4.2.2建立哈夫曼编码表?建立哈夫曼编码表即建立一个表格用来存储每个字符名称和对应的哈夫曼编码,此过程建立在已经构造好的哈夫曼树上,从叶结点开始,沿着双亲链向上,记录沿途经过分支上的二进制编码,直到到达根结点,于是对应每一个字符都有一个二进制串,即它的哈夫曼编码,用上面定义的哈夫曼编码表存储结构数组存放起来,即存在位串数组bits中。4.3编码?本程序的功能是能对从键盘输入的任意有限长度的字符串(限定在大写英文字符和空格)进行哈夫曼编码,因此需要定义函数WritecodeHuffman来实现对输入的字符串逐个进行编码,此过程实质上是将字符与编码表里的字符名称相比较,当名称一致时,就输出对应字符的bits数组中的二进制编码,然后依次输出每个字符的哈夫曼编码,将他们连续的显示在屏幕上。4.4文件写入由于要将这些二进制串写入文件,所以事先再定义一个全局字符数组Huffmancode来存储这些二进制串。在主函数先在某目录下建立一个.txt文件,名为codefile,再定义了一个输出流类ofstream的对象ofs,定义ofs的同时将其与文件codefile关联,于是,就可以通过操作ofs来实现文件数据的写入,即将字符数组Huffmancode中的二进制编码写入文件。[1]4.5译码?译码的过程与编码的过程相反,先将codefile文件中的二进制编码读出来,这时在主函数中也定义一个输入流类ifstream的对象ifs,同时将它与文件codefile关联,通过ifs读取codefile文件中的二进制编码,存放到数组buffer中,再通过译码函数进行译码,TranscodeHuffman译码函数定义如下:voidTranscodeHuffman(Hufcodecode[],Huftreetree[],chars[]){?inti;?char*q=NULL;

收藏

分享

举报
下载此文档