我要做一个二进制文件的数据压缩,采用Huffman算法。首先要统计文件中每个值的出现频率,而文件中每3个值是2个字节表示,也就是说,每个值是12位,请问各位我该怎么进行频率统计呢?
统计完了以后,对每个值采用Huffman树进行重新编码,编码后每个值的长度不一,可能不足一个字节,也有可能很多字节,那我该怎样写入文件啊?这些值长度不一,我不知道具体该怎么办。最好能给出简单的示例代码,大家救救我吧……
统计完了以后,对每个值采用Huffman树进行重新编码,编码后每个值的长度不一,可能不足一个字节,也有可能很多字节,那我该怎样写入文件啊?这些值长度不一,我不知道具体该怎么办。最好能给出简单的示例代码,大家救救我吧……
用一个字做存储单位
先初始化成0
然后将你的值得数据填充到它的后12位
之后正常应用Huffman算法就行了
编码后的值设置一个结构
struct codeValue
{
int nBytes;//记录这个值占了多少字节
int nBlank;//记录这条记录末尾空余多少位
BYTE* pValue;//数据指针
};
这样通过codeValue就可以进行读写操作了
codeValue是什么啊?我是菜鸟啊。
大家再帮帮我看看有什么好办法啊……
你也可以起别的名
如果你连这个懂看不懂
我觉得你不能做出这个东西啊
你这是工作?
让你们老板换个人吧
对于一条记录先读出nBytes和nBlank然后根据nBytes读出pValue数组再根据nBlank整理pValue的内容
以此类推读出其他记录