`
withoutme_hw
  • 浏览: 9423 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

使用huffman编码压缩文件,其中对文件进行编码存储、并读取的方法

 
阅读更多

//后注:这里的解码显然弱爆了,明显应该使用Huffman Tree来进行,而不是这里的hard code,因为一般情况,不可能只有a、b、c三个字符的编码。

 

回答百度知道上的一位朋友的问题,

他已经实现了huffman的编码过程但是不知道如何用编码方式对文件进行压缩

下面给出简单的代码。

对范例文件test.dat的压缩比例为:126byte/27byte

 

test.dat的内容

aaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcba

 

 

ps:

给出的代码只能对转换成二进制后,二进制位为7的倍数的文件进行压缩,如果需要弥补这个问题,需要在编码后的文件头中写入源文件的大小,本程序为简便起见,未作处理

分享到:
评论

相关推荐

    武汉理工大学计算机数据结构与算法实验一——二叉树与哈夫曼图片压缩

    1.实验目的 通过“图片压缩编码”的编程实践,学习树、遍历二叉树、哈夫曼树、...使用Huffman编码对原文件中的字节重新编码,获得压缩后的文件数据。 (5)保存压缩文件 将编码过的数据,保存到文件“Pic.bmp.huf”中。

    解,压缩程序 哈弗曼(Huffman)算法实现(对文本里的内容进行解压 和压缩 两个过程) 含实验报告

    2.使用Huffman编码压缩和解压时,Huffman树的存储可以直接存储树结构,也可以存储所有字符的频度或权值,然后读取时建立Huffman树; 3.使用Huffman编码压缩和解压时,注意定义压缩码的结束标记,可以使用一个特殊的...

    基于C++、文件操作和Huffman算法实现图片压缩源码+使用说明+详细注释+sln解决方案.zip

    使用Huffman编码,对原文件中的字节重新编码,获得压缩后的文件数据; (6)保存文件 将编码过的数据,保存到文件“Pic.bmp.huf”中。 ## 4. 数据结构的设计 1.记录统计256种不同字节的重复次数即权值使用整型...

    基于Huffman树的空间栅格数据存储与检索方法

    空间栅格数据由于冗余度高,数据...本程序中先根据选择创建随机文件或导入图片,计算各个灰度出现的频率生成Huffman编码,然后利用Huffman编码对源文件进行压缩,最后读取压缩后的文件进行译码并按照需要进行图像检索。

    MATLAB图形图像处理

    17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 ...

    matlab6.5图形图像处理源程序

    17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 ...

    matlab6.5图形图象处理源程序

    17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 ...

    VC++ matlab图像处理

    17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 ...

    图形图像处理源程序-matlab6.5图形图像处理源程序.rar

    17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术...

    数据结构(C++)有关练习题

    e. 如有可能,请建立一个存储商品名称和数量的文本文件,并为二叉搜索树建立一个成员函数SetupInventory(),用于从该文本文件中读取库存商品的数据, 实验报告要求: 1、 按要求记录下二叉搜索树的完整实验...

Global site tag (gtag.js) - Google Analytics