使用霍夫曼代码压缩文件的步骤

| 我知道有很多涉及霍夫曼代码的问题,包括我自己的另一个问题,但是我想知道真正编码文本文件的最佳方法是什么。减压似乎微不足道;遍历树,在0处左移,在1处右移,打印字符。 但是,如何进行压缩?以某种方式将字符的位表示形式存储在树的节点中?每次遇到字符时都在树中搜索并跟踪步骤?这用哪种编码方式有关系吗? 到目前为止,我有一个霍夫曼树,其中叶节点没有与之关联的二进制值。我的麻烦是将二进制值分配给树中的每个字符。 谢谢     
已邀请:
好吧,如果要基于字符对文件进行编码,我看不到问题,只需保留符号的哈希表,然后构造树,并使用所需的约定将其写入文件的开头,然后将新字母应用于文本。看一下DEFLATE中采用的方法,该方法用于压缩PNG图像。 编辑 目前还不清楚是什么问题。   在树中搜索每个字符   遇到的时间并追踪   脚步? 树中的每个节点代表一个唯一的符号。您无需搜索任何内容,只有在已经计算了每个符号的出现次数之后,您才能构造霍夫曼树。 因此,您已经开发了一种构造树的算法,问题在于如何将二进制值分配给节点?还是在哪里存储这些值?树本身自然地表示二进制值,您实际上可以在树的构建过程中跟踪它们,只需在插入操作中跟踪\ path项并将其存储在节点中,或者创建哈希表(如果不这样做)不想修改节点实体。     

要回复问题请先登录注册