Huffman編碼問題

2021-06-07 14:40:25 字數 1102 閱讀 4138

#include#include#include#define n 100

#define m 2*n-1

typedef struct codenode;

typedef codenode huffmancode[n+1];

typedef struct htnode;

typedef htnode huffmantree[m+1];//0號單元不可用

int num;

void select(huffmantree t,int k,int &s1,int &s2)

} j=0;

for(i=1,j=0;i<=26;i++) //統計有多少種字元

if(temp[i]!=0)

return j;

}void chuffmantree(huffmantree ht,huffmancode hc,int cnt,char str)

for(i=1;i<=num;i++) //輸入num個葉結點的權值

ht[i].weight=cnt[i];

for(i=num+1;i<=2*num-1;i++)

for(i=0;i<=num;i++) //輸入字符集中的字元

hc[i].ch=str[i];

i=1;while(i<=num)

printf("字元%c,次數為:%d\n",hc[i].ch,cnt[i++]);

} void huffmanencoding(huffmantree ht, huffmancode hc)

//end or while

strcpy(hc[i].bits,&cd[start]);

hc[i].len=num-start;

}//end or for

} void coding(huffmancode hc,char *str)

str++;

} fclose(fp); }

char *decode(huffmancode hc)

}} str[k]='\0';p=str;

return p; }

void main()

多元Huffman編碼問題

problem description 在乙個操場的四周擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次至少選2 堆最多選k堆石子合併成新的一堆,合併的費用為新的一堆的石子數。試設計乙個演算法,計算出將n堆石子合併成一堆的最大總費用和最小總費用。對於給定n堆石子,計算合併成一堆的最大總費用和最...

多元Huffman編碼問題

problem description 在乙個操場的四周擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次至少選2 堆最多選k堆石子合併成新的一堆,合併的費用為新的一堆的石子數。試設計乙個演算法,計算出將n堆石子合併成一堆的最大總費用和最小總費用。對於給定n堆石子,計算合併成一堆的最大總費用和最...

多元Huffman編碼問題

time limit 1000 ms memory limit 65536 kib submit statistic problem description 在乙個操場的四周擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次至少選2 堆最多選k堆石子合併成新的一堆,合併的費用為新的一堆的石子數。...