霍夫曼规范算法。存储代码表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了霍夫曼规范算法。存储代码表相关的知识,希望对你有一定的参考价值。
我实现了规范的霍夫曼算法,并且在理论上存在几个问题,即关于用于解码的信息的存储。作为一种方法,建议将字母字符及其规范代码的长度与编码数据一起传输,因为要恢复规范表,我们只需要代码长度即可。
示例:字符串“ bbbaacd”。规范代码:b 0(1位)a 10(2)c 110(3)d 111(3),即解码数据:b1a2c3d3。这提出了几个问题。
1]是否有必要将此表与根据表(在文件的末尾/开头)的编码数据一起传输到一个文件中?有没有真实的例子?
2)如果是,那么如果数据中有数字,如何理解表中的字母符号(数字)以及位数(长度)在哪里?
3)最后,如何理解表格和编码数据之间的边界在哪里?
如果所有内容都存储在单独的文件中(我认为更简单,更合乎逻辑),那么最后两个问题将自动消失。
答案
通常,代码长度与数据存储在同一文件中。例如,如果将最大代码长度设置为16位,则文件中的前128个字节可以是所有256个字节(每个4位)的代码长度。
稍微复杂一点的方法是对这些长度进行霍夫曼编码。您可以为此使用固定树...,也可以使用动态树并首先为每个长度写出符号的长度。
以上是关于霍夫曼规范算法。存储代码表的主要内容,如果未能解决你的问题,请参考以下文章