全球旧事资料 分类

3CNode类型顺序结构
typedefstructCNode用于保存字符频度的类型
charc存储出现字符种类
i
t
um字符出现次数
i
tflag存储字符是否出现的标记
CNodeCharNodeMAXV
f三详细设计
1相关数据类型采用C语言定义
i
tcd
储存哈夫曼编码
charstr
储存需要编码的字符串
doubleweight储存字符出现频度权值
i
tlchildrchildpare
t储存哈夫曼树中各结点位置
2各函数的调用关系图、主要函数的流程图
1各函数调用关系
图2各函数调用关系示意图
f2CreateHT函数
图3CreateHT函数流程图
f3mai
函数
图4mai
函数流程图
f4CreateHCode函数
图5CreateHcode函数流程图
f3各模块的类C码算法
1编码模块
首先通过键盘输入需要键盘的字符串调用cou
tstr函数统计并储存字符频度再调用函数
voidCreateHTHTNodehti
t
构造哈弗曼树
i
tijkl
oder
ode
doublemi
1mi
2分别存放l
ode和r
ode的两个结点位置
使所有结点的相关域置1
fori
i2
1i
先寻找权值最小结点使其成为左右孩子结点
再求出权值为左右孩子结点权值之和的hi结点
使hti作为双亲结点

再调用
voidCreateHCodeHTNodehtHCodehcdi
t

fori0i
i
hcstart
ci
fhtipare
t
若hti为htf的左孩子结点则
hccdhcstart0
若hti为htf的右孩子结点则
hccdhcstart1
再对htf进行同样的判断直至f1
hcstart
fhcdihc

2译码模块
先通过键盘输入哈夫曼编码代码串再调用
i
tReadCodecharstr1HCodehcdHTNodehti
tMAXi
t
译码函数
i
tijm0k
i
tflag1flag为1则哈弗曼编码输入合法
chartemp30
好听全球资料 返回顶部