Name哈夫曼编码源代码。Date20110416AuthorJeffreyHill在Wi
TC下测试通过实现过程:着先通过Huffma
Tree函数构造哈夫曼树,然后在主函数mai
中自底向上开始也就是从数组序号为零的结点开始向上层层判断,若在父结点左侧,则置码为0若在右侧则置码为1。最后输出生成的编码。i
cludestdiohdefi
eMAXBIT100字节defi
eMAXVALUE10000defi
eMAXLEAF30最多的叶子defi
eMAXNODEMAXLEAF21最多的结点typedefstructi
tbitMAXBITi
tstartHCodeType编码结构体typedefstructi
tweighti
tpare
ti
tlchildi
trchildHNodeType结点结构体构造一颗哈夫曼树先初始化结点,然后建立叶子voidHuffma
TreeHNodeTypeHuffNodeMAXNODEi
t
用来表示叶子的数目i、j:循环变量,m1、m2:构造哈夫曼树不同过程中两个最小权值结点的权值,x1、x2:构造哈夫曼树不同过程中两个最小权值结点在数组中的序号。i
tijm1m2x1x2初始化存放哈夫曼树数组HuffNode中的结点fori0i2
1iHuffNodeiweight0HuffNodeipare
t1HuffNodeilchild1HuffNodeilchild1e
dfor
f输入
个叶子结点的权值fori0i
ipri
tf