本目錄下的源代碼均屬示例、教學性質。作者不對這些代碼的功能和性能作任何擔保或承諾。
--------
功能說明
--------
本目錄下的程序用8種不同的方式實現了Huffman編碼算法,這8種方式分別是
* huffman_a 使用鏈表結構生成Huffman樹的算法,這是最基本的實現方法,效率最低。
* huffman_b 使用《數據結構》(嚴蔚敏,吳偉民,1997,C語言版)中給出的算法,將二叉樹存放在連續空間里(靜態鏈表),空間的每個結點內仍有左子樹、右子樹、雙親等指針。
* huffman_c 使用Canonical Huffman編碼,同時對huffman_b的存儲結構進行改造,將二叉樹存放在連續空間tree里,空間的每個結點類型都和結點權值的數據類型相同,空間大小為2*num,tree[0]未用,tree[1..num]是每個元素的權值,生成Huffman后,tree[1..2*num-1]中是雙親結點索引。
* huffman_d 在huffman_c的基礎上,增加預先排序的功能先用QuickSort算法對所有元素的權值從小到大排序,這樣,排序后最前面的兩個元素就是最小的一對元素了。我們可以直接將它們挑出來,組合成一個子樹。然后再子樹的權值用折半插入法插到已排序的元素
標簽:
Huffman
目錄
源代碼
代碼
上傳時間:
2013-12-20
上傳用戶:franktu