这是链接上一篇文章所写的代码,上一篇链接如下:
http://www.cnblogs.com/HONT/archive/2013/06/05/3118531.html
StringToHuffmanCode这个函数相当于把转换步奏打包执行,其中树的一些遍历使用递归实现,由于用了不少.Net3.5的特性,造成看着费劲实在抱歉。。
public string StringToHuffmanCode(out Dictionary<char, string> key, string str) { string result = ""; var tmps = GetWeightArray(str); //构建权值数组 var tree = CreateHuffmanTree(tmps); //构建哈弗曼树,即最优二叉树 var dict = CreateHuffmanDict(tree); //构建哈弗曼字典. result = ToHuffmanCode(str, dict); //输出哈弗曼代码 key = dict; return result; }