xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 3KB
    文件類(lèi)型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-19
  • 語(yǔ)言: C/C++
  • 標(biāo)簽: C實(shí)現(xiàn)??

資源簡(jiǎn)介

哈夫曼編碼:從鍵盤(pán)輸入若干字符及每個(gè)字符出現(xiàn)的頻率,將字符出現(xiàn)的頻率作為結(jié)點(diǎn)的權(quán)值,建立哈夫曼樹(shù),然后對(duì)各個(gè)字符進(jìn)行哈夫曼編碼,最后打印輸出字符及對(duì)應(yīng)的哈夫曼編碼。

資源截圖

代碼片段和文件信息

#include??
#include???
#define?N?10?/*待編碼字符的個(gè)數(shù),即樹(shù)中葉結(jié)點(diǎn)的最大個(gè)數(shù)*/?
#define?M?2*N-1?/*樹(shù)中總的結(jié)點(diǎn)數(shù)目*/?

typedef?struct{?
int?weight;??
int?parentlchildrchild;??
}HTNode;?/*樹(shù)中結(jié)點(diǎn)的結(jié)構(gòu)*/?

typedef?struct?{??
char?data;?/*待編碼的字符*/?
int?weight;?/*字符的權(quán)值*/?
char?code[N];?/*字符的編碼*/?
}?HTCode;??

void?Init(HTCode?hc[]int?*n){??/*初始化,讀入待編碼字符的個(gè)數(shù)n,從鍵盤(pán)輸入n個(gè)字符和n個(gè)權(quán)值*/?
int?i;?
printf(“please?input?the?number?of?code?which?is?to?be?encoded‘n‘(end?by?0):\n“);?
scanf(“%d“&(*n));?
if(*n!=0){??
printf(“input?%d?character\n“*n);getchar();?
for?(i=1;i<=*n;i++)
hc[i].data=getchar();?
printf(“input?%d?weight\n“*n);?
for?(i=1;i<=*n;i++)??
scanf(“%4d“&hc[i].weight);?
}?

}??

void?Select(HTNode?ht[]int?kint?*s1int?*s2){?
?/*ht[1?k]中選擇parent為0,并且weight最小的兩個(gè)結(jié)點(diǎn)其序號(hào)由指針變量s1s2指向*/?
int?i;??
for?(i=1;i<=k?&&?ht[i].parent!=0;i++);?
*s1=i;??
for?(i=1;i<=k;i++)??
if?(ht[i].parent==0?&&?ht[i].weight *s1=i;?
for?(i=1;?i<=k;i++)??
if?(ht[i].parent==0?&&?i!=*s1)?
break;?
*s2=i;??
for?(i=1;i<=k;i++)??
if?(?ht[i].parent==0?&&?i!=*s1?&&?ht[i].weight *s2=i;?
}??

void?huffman(HTNode?ht[]HTCode?hc[]int?n)
{?
int?ims1s2;?
m=2*n-1;??
for?(i=1;i<=m;i++){??
if?(i<=n)?ht[i].weight=hc[i].weight;?
else?ht[i].weight=0;??
ht[i].parent=

評(píng)論

共有 條評(píng)論

相關(guān)資源