【发布时间】:2017-11-21 05:07:59
【问题描述】:
这可能是一个愚蠢的问题,但是压缩一个空文件没有任何意义,对吧?空文件上的霍夫曼编码算法不起作用,因为它依赖于优先级队列中必须至少有 2 个节点的事实。如果我们在一个空文件上运行该算法,我们将获得的唯一节点是与 EOF 对应的节点。
【问题讨论】:
标签: huffman-code
这可能是一个愚蠢的问题,但是压缩一个空文件没有任何意义,对吧?空文件上的霍夫曼编码算法不起作用,因为它依赖于优先级队列中必须至少有 2 个节点的事实。如果我们在一个空文件上运行该算法,我们将获得的唯一节点是与 EOF 对应的节点。
【问题讨论】:
标签: huffman-code
是的,对它运行 Huffman 编码没有多大意义。根据实现的细节,它可能不会崩溃。
但是你为什么要压缩一个空文件呢?
【讨论】:
您需要在压缩数据的开头以某种方式对哪些符号对应于 Huffman 编码进行编码。正是在该表示中,将指示符号的数量。如果只有一个符号,根据您的描述必须是 EOF,那么霍夫曼编码暗示为零位。如果只有一个符号,则需要 0 位来表示它。
【讨论】: