資源簡介
數(shù)據(jù)結(jié)構(gòu)中基于C語言實(shí)現(xiàn)的Huffman編碼、解碼程序 !解碼程序很重要,很多書上都沒有哦!!
代碼片段和文件信息
#include
#include
#define?MAXVALUE?10000??//定義最大權(quán)值
#define?MAXLEAF?30??????//定義哈弗曼樹中葉節(jié)點(diǎn)個(gè)數(shù)
#define?MAXNODE?MAXLEAF*2-1
#define?MAXBIT?30?????//定義哈弗曼編碼的最大長度
#define?MAX?100???????//可編碼字符串最大長度
#define?MAXCODE?10000?//二進(jìn)制編碼最大長度
int?numroot;?????????//定義全局變量
char?str[MAX];
typedef??struct
{
char?ch;
????int?weight;
????int?parent;
????int?lchild;
????int?rchild;
}?HNodeTypehuffmannode*huffmantree;
void?HuffmanTree(HNodeType?HuffNode[])??//哈弗曼樹的的構(gòu)造算法
{???
int?ijx1x2m1m2;
printf(“輸入要編碼的字符串:“);
????gets(str);
num=1;???//葉子節(jié)點(diǎn)個(gè)數(shù)
for(i=1;str[i];i++)?//統(tǒng)計(jì)總共有多少種字符
{
for(j=i-1;j>=0;j--)
if(str[i]==str[j])?break;
if(j==-1)?num++;
}
if(num==1)
{
printf(“error!??一個(gè)節(jié)點(diǎn)無法建樹!此字母編碼為:0?\n\n\n“);
return;
}
????for(i=0;i<2*num-1;i++)??//數(shù)組HuffNode[]初始化
{
HuffNode[i].weight=0;
????????HuffNode[i].parent=-1;?
????????HuffNode[i].lchild=-1;
????HuffNode[i].rchild=-1;
}
int?n=0;
????for(i=0;str[i];i++)??//掃描字符串,每個(gè)字符出現(xiàn)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????538??2010-01-03?23:41??Huffman?正式版\coder.txt
?????文件?????????46??2010-01-03?23:41??Huffman?正式版\data.txt
?????文件????????112??2010-01-03?23:28??Huffman?正式版\Debug\coder.txt
?????文件?????237628??2010-01-03?23:41??Huffman?正式版\Debug\encode.exe
?????文件?????274276??2010-01-03?23:41??Huffman?正式版\Debug\encode.ilk
?????文件??????17458??2010-01-03?23:41??Huffman?正式版\Debug\encode.obj
?????文件?????290412??2010-01-03?23:38??Huffman?正式版\Debug\encode.pch
?????文件?????574464??2010-01-03?23:41??Huffman?正式版\Debug\encode.pdb
?????文件??????50176??2010-01-03?23:41??Huffman?正式版\Debug\vc60.idb
?????文件??????61440??2010-01-03?23:41??Huffman?正式版\Debug\vc60.pdb
?????文件???????4293??2010-01-03?23:41??Huffman?正式版\encode.cpp
?????文件???????3401??2010-01-03?23:38??Huffman?正式版\encode.dsp
?????文件????????537??2010-01-03?23:47??Huffman?正式版\encode.dsw
?????文件??????50176??2010-01-03?23:47??Huffman?正式版\encode.ncb
?????文件??????48640??2010-01-03?23:47??Huffman?正式版\encode.opt
?????文件???????1120??2010-01-03?23:41??Huffman?正式版\encode.plg
?????文件???????4295??2009-12-01?15:46??Huffman?正式版\Huffman.dsp
?????文件????????537??2009-12-01?15:26??Huffman?正式版\Huffman.dsw
?????文件??????33792??2009-12-01?15:46??Huffman?正式版\Huffman.ncb
?????文件??????48640??2009-12-01?15:46??Huffman?正式版\Huffman.opt
?????文件????????838??2009-12-01?15:44??Huffman?正式版\Huffman.plg
?????目錄??????????0??2010-04-07?19:44??Huffman?正式版\Debug
?????目錄??????????0??2010-04-07?19:44??Huffman?正式版
-----------?---------??----------?-----??----
??????????????1702819????????????????????23
評(píng)論
共有 條評(píng)論