-
大小: 180KB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2021-01-11
- 語言: C/C++
- 標(biāo)簽: 香農(nóng)編碼??C語言??
資源簡介
根據(jù)香農(nóng)編碼,費(fèi)諾編碼和哈夫曼編碼的最佳編碼思想,運(yùn)用C語言或Matlab語言任選2個給予分別實(shí)現(xiàn),其中哈夫曼編碼必選.
基本要求(15):
1.輸入任意個數(shù)的信源符號
2.輸入任意大小的概率分布(ΣPi=1)
3.哈夫曼編碼給出方式選擇
4. 輸出編碼結(jié)果
5.輸出信源熵,平均碼長,編碼效率等
6.編程加注解
附加要求(5):
1.能實(shí)現(xiàn)哈夫曼多進(jìn)制(元)編碼(3進(jìn)制)
或 2.能實(shí)現(xiàn)哈夫曼多重(擴(kuò)展)編碼(2重,信源2-3個符號)
代碼片段和文件信息
?#include?
?#include?
?#define?MaxSize?100
?typedef?char?ElemType;?
?typedef?struct
?{
?????ElemType?data[MaxSize];
?????double?weight;?????????????????/*葉子權(quán)重,信源概率*/
?????int?parent;????????????????/*父親節(jié)點(diǎn)*/
?????int?lchild;????????????????/*左孩子節(jié)點(diǎn)*/
?????int?rchild;???????????????/*右孩子節(jié)點(diǎn)*/
?}?HTNode;
?typedef?struct
?{
?????char?cd[MaxSize];???????????/*存放編碼用*/
?????int?start;
?}?HCode;???
?void?CreateHT(HTNode?ht[]int?n)?????????????????/*構(gòu)造哈夫曼樹子程序*/
?{
?????int?ijk;
????int?lnodernode;?????????????/*節(jié)點(diǎn)*/
?????double?min1min2;
?????for(i=0;i<2*n-1;i++)???????????????/*進(jìn)行2*n-1次合并*/
?????ht[i].parent=ht[i].lchild=ht[i].rchild=-1;
????for(i=n;i<2*n-1;i++)
????{
?????????min1=min2=32767;
?????????lnode=rnode=-1;
?????????for(k=0;k<=i-1;k++)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3914??2008-12-15?18:13??鄭旅軍?0656061?哈夫曼編碼完成版\huffman.c
?????文件?????213093??2008-12-15?18:50??鄭旅軍?0656061?哈夫曼編碼完成版\huffman.exe
?????文件???????9488??2008-12-15?18:50??鄭旅軍?0656061?哈夫曼編碼完成版\huffman.obj
?????文件???????2679??2008-12-13?20:23??鄭旅軍?0656061?香農(nóng)編碼完成版\xn.c
?????文件?????217182??2008-12-15?18:46??鄭旅軍?0656061?香農(nóng)編碼完成版\xn.exe
?????文件???????8935??2008-12-15?18:46??鄭旅軍?0656061?香農(nóng)編碼完成版\xn.obj
?????目錄??????????0??2008-12-15?18:51??鄭旅軍?0656061?哈夫曼編碼完成版
?????目錄??????????0??2008-12-15?18:50??鄭旅軍?0656061?香農(nóng)編碼完成版
?????文件?????159232??2008-12-15?18:42??信息論與編碼課程期中作業(yè)報(bào)告.doc
-----------?---------??----------?-----??----
???????????????614523????????????????????9
評論
共有 條評論