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

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

 
阅读更多

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

 

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

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

下面给出简单的代码。

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

 

test.dat的内容

aaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcbaaaabbcaaabbcba

 

 

ps:

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

分享到:
评论

相关推荐

    用Huffman编码对文件进行压缩的C语言实现

    - 对文件内容进行压缩的核心逻辑没有完全展示,但可以推测这部分代码将涉及读取文件中的字符、查找对应的Huffman编码、并将这些编码输出。 #### 五、结论 通过上述介绍,我们可以了解到使用Huffman编码进行文件...

    用Huffman编码实现文件压缩(含代码)

    4. 文件解压:读取压缩文件,根据Huffman编码对每个符号进行解码,并将解码后的符号写入解压文件中。最后,检查解压文件是否完整,即对比压缩前文件的长度。 5. 实验环境:实验环境是Windows XP,使用VC++ 6.0...

    c语言实现文件压缩 huffman编码实现

    在实际应用中,C语言实现的Huffman编码压缩可能不如商业压缩软件如WinRAR或7-Zip高效,但作为一个学习项目,它可以加深对数据压缩原理和C语言编程的理解。同时,通过扩展注册表功能,可以提升用户体验,让压缩和解压...

    C++实现huffman编码压缩文件,适用于任何格式的压缩

    在C++中实现Huffman编码压缩文件,主要涉及以下几个关键知识点: 1. **Huffman树**:Huffman树(也称为最优二叉树或最小带权路径长度树)是构建Huffman编码的基础。它是一个带权重的二叉树,其中每个叶子节点代表一...

    Huffman编码对英文文本的压缩和解压缩

    ### Huffman编码对英文文本的压缩和解压缩 #### 概述 Huffman编码是一种广泛应用于数据压缩领域的编码方法,尤其适用于英文文本的压缩与解压缩。这种方法基于变长编码原理,通过对不同字符出现频率的统计,构建出...

    huffman编码实现压缩与解压文件

    6. **解压缩**:解压缩时,首先读取并重建Huffman编码表。然后,按照编码后的文件中的二进制流,使用编码表解码回原始字符。 7. **文件写入**:将解码后的字符写入新文件,完成解压缩过程。 在Java中,可以使用`...

    Huffman 编码压缩算法

    Huffman编码是一种基于字符出现频率的无损数据压缩算法,由David A. Huffman在1952年提出。它的核心思想是通过构建一棵特殊的二叉树(Huffman树)来为每个字符分配唯一的二进制编码,使得频繁出现的字符具有较短的...

    Huffman编码对文本文件进行压缩和解压

    通过以上描述,我们可以了解到Java实现Huffman编码压缩和解压文本文件的基本流程和原理。在实际项目中,这种技术可以帮助我们有效地减小文件存储空间,提高数据传输效率。通过提供的测试文件、Java源代码和测试结果...

    利用HUFFMAN编码的压缩与解压

    这些算法通常包含一个前端模型来处理原始数据,然后使用Huffman编码进行量化数据的进一步压缩。 **三、Huffman算法原理** Huffman算法的基本思想是构建一棵特殊的二叉树——Huffman树。这个过程包括以下步骤: 1. ...

    数据结构课程设计-基于Huffman编码的文件压缩与解压缩.docx

    然后,读取压缩文件,根据编码表和Huffman树,按照二进制编码的路径在树上进行查找,找到对应的字符并写入目标文件,实现解压缩。 在程序设计报告中,整体设计包括输入文件处理、遍历统计、Huffman树构建、编码与...

    使用Huffman对文件进行压缩和解压缩

    总的来说,Huffman编码是一种基础的数据压缩技术,虽然在现代的压缩算法如DEFLATE(用于ZIP和GZIP)中已被更复杂的方法取代,但它仍然是理解和学习数据压缩原理的重要起点。在Java中实现这一算法可以加深对文件操作...

    huffman进行编码,解码根据Huffman算法编写一个对文件进行压缩和解压缩的程序。该程序可以对所有的文件类型进行压缩,压缩之后的文件后缀名为huff。

    在这个过程中,程序需要知道哈夫曼树的结构,通常可以将编码表存储在压缩文件的头部,解压缩时先读取编码表,然后按照编码表进行解码。 对于给定的压缩包文件"PHuffman",它可能是实现了哈夫曼编码的压缩文件。这个...

    Huffman编码算法压缩文本文件

    4. **编码文件**:使用生成的编码表,将文本文件中的每个字符替换为其对应的Huffman编码,形成压缩文件。这一步通常需要将编码后的二进制序列转换成字节流以便写入文件。 5. **解压缩文件**:解压缩时,读取压缩...

    用哈弗曼编码对文件进行压缩与解压

    该文探讨了如何使用静态哈弗曼编码对文件进行压缩与解压,并提供了具体的实现代码片段。本文将详细分析其工作原理、压缩过程、解压方法以及性能评估。 #### 压缩原理与步骤 ##### 1. 构建哈弗曼树 哈弗曼树是一棵...

    huffman编码压缩文本文件核心代码

    根据给定的信息,本文将详细解释Huffman编码压缩文本文件(txt)的核心代码涉及的关键知识点。这主要包括Huffman编码的基本原理、实现步骤以及代码中所体现的重要细节。 ### Huffman编码基本原理 Huffman编码是一...

    用Huffman编码对文件进行压缩的C语言实现.pdf

    总而言之,使用Huffman编码进行文件压缩是数据结构与算法教学和实践中的一个重要课题。C语言作为一种强大的系统编程语言,非常适合用来实现这一功能。通过C语言提供的文件操作和内存管理功能,可以有效地完成从文件...

    基于霍夫曼(Huffman)图像编码的图像压缩和重建-含Matlab代码.docx

    本主题将深入探讨霍夫曼编码在图像压缩和重建中的应用,并结合Matlab代码进行解析。 1. 霍夫曼编码原理: 霍夫曼编码是一种变长编码技术,根据字符出现的频率分配不同的二进制码字。频率高的字符分配较短的码字,...

    基于Huffman编码压缩软件(java实现)

    而`Compress.java`则可能包含了使用Huffman编码进行实际压缩的逻辑,它将输入文件的字符替换为对应的Huffman编码,并生成压缩后的二进制输出。 `GetReady.java`可能是负责初始化或准备压缩工作的类,例如设置输入...

    Huffman编码与文件压缩.

    例如,在实验报告中提到,对于一个大小为2.08MB的文件`cacm.all`,采用Huffman编码压缩仅需8.272秒。 #### 实验心得 通过这次实验,不仅加深了对Huffman编码原理的理解,还学会了如何将其应用于实际问题解决之中。...

Global site tag (gtag.js) - Google Analytics