huffman-coding相关内容

给定二进制序列/排序可以绘制二叉树?

二进制树(因此有序的林)可以表示为二进制字符串。二进制字符串是通过以预订方式遍历一个二叉树,为每个节点记录一个,每个空子树记录一个0(空链接)。 这意味着如果我给了一个二叉树,我可以做一个preorder遍历,并产生二进制序列表示。 相反也可以吗?如果我给出这个二进制序列 11011000101101010001 ,我可以绘制二叉树吗? 解决方案 将内部节点标记为 a ,将 ..
发布时间:2017-04-03 15:10:39 其他开发

huffman编码的真实应用是什么?

我被告知Huffman编码被用作无数据压缩算法,但我也被告知,实际的数据压缩软件不会采用Huffman编码,因为如果键没有分散到足够分散,压缩文件可能甚至大于orignal文件。 这让我想知道有什么真实世界的应用程序的Huffman编码? / p> 解决方案 Huffman广泛应用于您可能遇到的所有主流压缩格式 - 从GZIP,PKZIP(winzip等)和BZIP2, 所有压 ..
发布时间:2016-12-25 13:12:04 其他开发

霍夫曼压缩算法

我已经使用huffman的算法实现文件压缩,但我的问题是,启用解压缩压缩文件,使用的编码树,或者代码本身也应该写入文件。问题是:我该怎么做?在压缩文件的开始处编写编码树的最好方法是什么? 解决方案 有一个非常标准的实现Huffman在基本压缩库(BCL)中编码,包括将树写入文件的递归函数。看看huffman.C。它只是写出叶子,以便解码器可以重建相同的树。 BCL也很不错,因为还有一 ..
发布时间:2016-12-25 13:08:33 其他开发

什么是最好的压缩算法,允许在文件中的随机读/写?

什么是最好的压缩算法,允许在一个文件中的随机读/写? 我知道任何自适应压缩算法都是没有问题的。 p> 我知道huffman编码是不可能的。 有没有人有更好的压缩算法随机读/写? 我想你可以使用任何压缩算法,如果你写在块中,但理想情况下,我不想要解压整个块时间。但如果你有一个简单的方法来做这个,如何知道块边界的建议,请让我知道。如果这是您的解决方案的一部分,也请让我知道当你想 ..

霍夫曼高度计算和一些挑战?

我读了霍夫曼树的高度与 10-输入符号的频率 1到10 是 5 !我做了很多研究,但我不能得到它很清楚,我们如何计算树的高度!任何想法? 解决方案 我通常不会看到术语“height”,而是“depth”。在任何情况下,它们意味着最长代码的位数。这实际上等于你所引用频率的五。 ..
发布时间:2016-11-03 01:46:20 C/C++开发

CPU huffman压缩更快第一次执行后?

我最近在C ++中构建了一个CPU实现的Huffman编码。我还在CUDA中构建了一个GPU版本,以便比较时间,但是我在测试CPU的时间时遇到了一个问题: 当压缩测试通过压缩大文件,例如97MB的文本文件,几乎每个字母表中的字母和各种其他ascii字符,我的CPU实现将需要大约8.3秒的第一次执行。之后,时间显着下降到1.7秒。注意:我只是计算CPU的频率计数,而不是字符串的编码和写入文件。 ..
发布时间:2016-10-28 05:53:29 C/C++开发

如何在文件中打印一个位而不是字节?

我使用huffman算法开发一个文件压缩器,现在我面临的问题是: 通过使用算法到字: stackoverflow,我得到以下结果: a,c,e,f,k,l,r,s,t ,v,w = 1次重复 o = 2次重复 a,c,e,f,k,l,r,s,t,v,w = 7.69231% 和 o = 15.3846% 所以我开始插入二叉树给我的结果: o = 00 ..
发布时间:2016-10-25 13:52:46 C/C++开发

如何快速解码huffman代码?

我已经实施了一个简单的我不太了解如何快速解码压缩文件,我的坏算法是: 枚举所有的huffman代码在代码表中,然后将其与压缩文件中的位进行比较。结果是可怕的结果:解压缩3MB文件将需要6小时。 更新: 我已经实现了 ..
发布时间:2016-10-14 12:05:38 C/C++开发

高效的存储哈夫曼树的方法

我正在编写一个Huffman编码/解码工具,并且正在寻找一种高效的方式来存储创建用于存储输出文件内部的Huffman树。 目前有两个不同的版本,我正在实现。 这是一个字符读取整个文件到内存中,并建立一个频率表整个文档。这将只需要输出树一次,因此效率不是那么大的关注,除非输入文件很小。 我使用的另一种方法是读取大约64千字节大小的数据块,并运行频率分析,创建一个树和编码。然而,在这种情 ..
发布时间:2016-10-11 21:46:47 C/C++开发

的malloc:***错误对象:被释放的指针没有被分配在***向malloc_error_break调试设置断点

有人可以帮我找出在那里我得到这个错误。我知道这可能是一个双缺失或类似这样的东西。对于背景,这是哈夫曼树的实现,你可以很容易地在维基百科实现。 CharCountNode类实现 INT的main() { ifstream的输入; input.open(“input.txt中”); MinPriorityQueue< CharCountNode>堆; 地图<焦炭, ..
发布时间:2016-08-22 16:44:27 C/C++开发

阅读文件字节数组

我有一个编码Huffman算法的分配。我在我的头上组织的整个问题,但我有一些麻烦的文件处理。 问题是:算法应该是COM preSS的任何文件类型。 我的解决办法:读取文件作为字节数组,然后用 int数组[256] = {0} 每个字节,得到它的 INTñ相应的值,并增加了数组[N] 。如果我不明确表态,让我知道。 所以,我做了很多的研究,并没有他们似乎有什么我需要了解如何将任何类型的文件,以 ..
发布时间:2016-08-21 21:31:00 C/C++

我如何用C重新present二进制数++(用于连接霍夫曼codeR)?

我写我自己的霍夫曼EN codeR ,到目前为止我已经创建哈夫曼树用minHeap弹出了两个频率最低的节点,并链接到他们一个节点,然后推新节点退一(起泡,冲洗,重复,直到只有一个节点)。 所以,现在我已经创建了树,但我需要使用此树codeS分配给每个字符。我的问题是我不知道怎么了一些二进制重新presentation存储在C ++中。我记得读取无符号的字符是一个字节的标准,但我不确定。 我知道 ..

输出位数据的二进制文件C ++

我写一个COM pression程序,需要位数据写入用c ++的二进制文件。如果任何人都可以在写的语句,或者咨询网站建议,我将非常感激。 道歉,如果这是一个简单的或混乱的问题,我苦苦寻找的网页答案。 解决方案 收集位转换成全部字节,例如为unsigned char或std :: bitset的(其中的bitset大小CHAR_BIT的倍数),然后写全字节在一个时间。计算机“处理位”,但可 ..
发布时间:2016-08-07 20:00:47 C/C++开发

将字符串转换成重位presentation一个字节

我刚开始学习有关文件COM pression和我碰到一个有点路障。我有一个应用程序,将连接codeA字符串,如“计划”作为一个COM pressed二进制重新presentation “010100111111011000”(注意,这是还是存储为一个字符串)。 编码 摹111 R 10 110 p 010 Ø011 分00 现在我需要用写这文件系统中的的FileOutputStream ,我 ..
发布时间:2016-08-07 19:55:06 Java开发

写作比特形式的文件在C文件

我实现哈夫曼算法C.我已经得到了基本功能下降高达那里得到二进制codewords点。因此,例如,ABCD将是100011000或类似的东西。现在的问题是怎么写的二进制形式此code在com pressed文件。我的意思是,如果我写的每一个正常1和0将是一个字符,所以没有COM pression。 我需要写的1和0在其位的形式。是可能的C.如果又如何? 解决方案 直到你有足够的比特来填充一 ..
发布时间:2016-08-07 19:54:51 开发方法

阅读和使用C滴滴写位+ +的霍夫曼编码

我想带code和德code代表霍夫曼用C ++编码的。我不知道在我的问题是,我能够正确地读写,但是当我DECOM preSS其炒,所以我不是没有编码的文件或解码。 我认为它的时候我写和读的地方出问题的文件。所以这是我写的EN codeD文件。首先,我存储所有位codeS从我叫UMAP无序映射成一个字符串: INT I = 0,J = 0; 字符串fullStr =“”; 对于(i = 0; ..
发布时间:2016-08-06 23:01:43 C/C++开发

无损COM pression方法来缩短字符串base64编码前,把它缩短?

刚刚建立了一个小型的Web应用程序生成的URL previewing HTML的文件:S包含HTML(和所有联CSS和Javascript)以base64 EN codeD数据。问题是,网址:■快速获得还挺长。什么是“事实上的”标准方式(preferably通过的的JavaScript ),以COM preSS字符串第一个无数据丢失? PS;我前段时间读到霍夫曼和的Lempel-谢夫在学校里,我 ..
发布时间:2016-08-01 21:17:54 前端开发

如何存储在C中的结构指针变量树值(全树)++

我是新的编程工作的C ++(的问题,即使这个概念是在C一样,我猜)。 我读一个文件,其中包含alphabtes(符号在我的code),如“aabbacceaad”来计算频率的唯一参数。 我的code计算频率correctly.I我确信这一点。 现在的问题是,在我的code 节点*树指针变量(即节点类型)。我使用它来创建tree.But当我试图从重复的符号计算出的频率创建树那么这个树指针变量只记得 ..
发布时间:2015-11-30 22:26:28 C/C++开发