{
cout<<\; return 0; }
for(i=0;i { huffTreeEncode(i); strcpy(hashArray[huffTree[i].ascNum].code,huffTree[i].code); hashArray[huffTree[i].ascNum].codeLen=huffTree[i].codeLen; } cout<<\哈夫曼编码结果\; for(i=0;i cout< cout<<\; cout<<\各字符哈夫曼码\<<'\\n'; for(i=0;i<256;i++) { if(hashArray[i].value!=0) cout<<(char)i<<\的哈夫曼码为\< cout<<\; cout<<\平均码长\; for(i=0;i sumCodeLen+=hashArray[sourceS[i]].codeLen; } cout<<(float)sumCodeLen/(float)wholeValue; cout<<'\\n'; } ·实验截图 ·实验心得 实验过程中对哈夫曼码的编码过程有了更进一步的了解,对其优势及适宜与不适宜的编码情况也有了更深入的思考,除了每种字符仅出现一次的情况算法本身效率最低意外,当需编码的字符过多是平均码长超过7,在实际存储过程中相较于直接使用ASCii码将占用更多的存储空间也是必须考虑的问题。 经与其他同学的算法比较发现,将Hash表作为存储与索引的方式,是本算法较大的优势,可方便各字符编码的输出与平均码长的计算。