我正在使用霍夫曼算法开发文件压缩器,现在我面临的问题是:
通过使用该算法:stackoverflow,我得到以下结果:
a,c,e,f,k,l,r,s,t,v,w = 1 time repeated
o = 2 times repeated
a,c,e,f,k,l,r,s,t,v,w = 7.69231%
and
o = 15.3846%
Run Code Online (Sandbox Code Playgroud)
所以我开始插入二进制树,这将得到结果:
o=00
a=010
e=0110
c=0111
t=1000
s=1001
w=1010
v=1011
k=1100
f=1101
r=1110
l=1111
Run Code Online (Sandbox Code Playgroud)
这意味着树中角色的路径,考虑0为左,1为右.
然后单词"stackoverflow"将是:100110000100111010011111000010110110111011011111001010
好吧,我想将整个值放入一个二进制文件中,这将导致47位,这将是6字节,但我只能使它成为47字节,因为最小值将被放入一个文件与fwrite或者fprintf是1byte,使用sizeof(某事物).
比我的问题是:我如何只在我的文件中打印一下?