#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堆石子合併成新的一堆,合併的費用為新的一堆的石子數。...