Huffman编码算法及C语言实现(2)_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > Huffman编码算法及C语言实现(2)

Huffman编码算法及C语言实现(2)

 2010/9/19 23:30:39  rogerceng  http://rogerceng.javaeye.com  我要评论(0)
  • 摘要:构造完成后HT数组的状态如下:通过huffman树,得到每一个叶子结点的huffman编码。在此采用的从叶子结点到根结点求每个字符huffman编码方法。从叶子c开始,通过结点c的双亲结点域,找到双亲,然后判断双亲结点的左孩子和右孩子是否为c,如果是左孩子,则编码为0,如果是右孩子则编码为1。按照这个方法,直到根结点,即求出每个叶子结点对应的huffman编码。另外在构造huffman树中使用了Select函数实现选取n个叶子结点中权重最小的2个结点,算法很巧妙,请大家仔细研究:主函数:
  • 标签:Huffman编码算法及C语言实现



?构造完成后HT数组的状态如下:


通过huffman树,得到每一个叶子结点的huffman编码。在此采用的从叶子结点到根结点求每个字符huffman编码方法。从叶子c开始,通过结点c的双亲结点域,找到双亲,然后判断双亲结点的左孩子和右孩子是否为c,如果是左孩子,则编码为0,如果是右孩子则编码为1。按照这个方法,直到根结点,即求出每个叶子结点对应的huffman编码。

?


另外在构造huffman树中使用了Select函数实现选取n个叶子结点中权重最小的2个结点,算法很巧妙,请大家仔细研究


主函数:

?


?

发表评论
用户名: 匿名