【发布时间】:2018-10-09 08:40:27
【问题描述】:
我有一个关于 Huffman Coding 的作业,以使用 Huffman 代码压缩和解压缩文本文档。我创建了一个 Huffman 树,其中每个 Node 都包含带有计算出的 Huffman 代码的 BitArray。
主要问题是有效地编码输入文件。我不确定如何保存编码字节(通过将 BitArray 转换为字节数组创建)而不造成代码之间的冲突?
示例:有两个霍夫曼码 e = 101 和 i = 0101。当它们转换为字节时,它们表示为 e = 00000101 和 i = 00000101。
如何避免这种情况,有没有更好的文件编码方法?
100 万个字符的文件压缩和解压的预期时间是多少?
(现在我正在创建一个包含所有编码位的 BitArray,然后将其转换为 byte[] 并保存它,这需要太多时间和内存。)
【问题讨论】:
-
你不应该填充你的代码来填满字节。相反,您应该考虑将所有代码(没有填充)连接起来形成一长串位,然后一次将八位输出到您的文件中。
标签: c# huffman-code