冲区中的每个编码用对应的ASCII码逐
个替换就可以了。只要记住,这里的输入缓冲区是一个包含每个ASCII值的编码的位流。因
此,为了用ASCII值替换编码,我们必须用位流搜索哈夫曼树,直到发现一个叶节点,然后
将它的ASCII值添加到输出缓冲区中:
i
t
DesI
dex0
DWORD
Code
while
DesI
dex
DesLe
CodeDWORDpSrc
SrcI
dex3
SrcI
dex7
pNodepRoot
whilepNodepLeft
pNode
Code1pNodepRightpNodepLeft
Code1
SrcI
dex
pDes
DesI
dexpNodebyAscii
程序实现
费诺编码
i
cludestdioh
i
cludestdlibh
i
cludestri
gh
fi
cludemathh
defi
eM100
typedefstructFa
o_Node
charch
floatweight
Fa
oNodeM
typedefstruct
ode
i
tstart
i
te
d
struct
ode
ext
Li
kQueueNode
typedefstruct
Li
kQueueNodefro
t
Li
kQueueNoderear
Li
kQueue
建立队列
voidE
terQueueLi
kQueueqi
tsi
te
Li
kQueueNodeNewNode
生成新节点
NewNodeLi
kQueueNodemallocsizeofLi
kQueueNode
ifNewNodeNULL
NewNodestarts
fNewNodee
de
NewNode
extNULL
qrear
extNewNode
qrearNewNode
else
pri
tf