-
大小: 5KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-01-06
- 語言: C/C++
- 標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu)??
資源簡(jiǎn)介
對(duì)一篇英文文章,統(tǒng)計(jì)各字符(僅限于26個(gè)字母,不區(qū)分大小寫)出現(xiàn)的次數(shù),實(shí)現(xiàn)Huffman編碼。
[基本要求]
(1)從文件讀入原始文本文件,并在屏幕上顯示出來;
(2)輸出每個(gè)字符(26個(gè)英文字母)出現(xiàn)的次數(shù)和相應(yīng)編碼
代碼片段和文件信息
#include
#include
#include
#define?max_value?99999
typedef?struct?node?????????????????//Huffman樹結(jié)構(gòu)定義
{
int?weight;
int?parent?left?right;
}HuffmanTree;
typedef?char?*?*?HuffmanCode;??????//動(dòng)態(tài)分配數(shù)組存儲(chǔ)Huffman編碼表
int?get_weight(int*?int?*);???????//獲取權(quán)值
void?creat_Huffman_tree(HuffmanTree*?int?int?*);??//創(chuàng)建Huffman樹
HuffmanCode?Huffman_code(int?HuffmanTree*);????????//編碼,從葉子節(jié)點(diǎn)到根節(jié)點(diǎn)
void?reverse(HuffmanCode?int);????????????????//譯碼,從根到葉
//******************************************************主函數(shù)
void?main()
{
int?n?w[27]?=?{?0?}?i?wg[27]?j?=?0;?????//w數(shù)組記錄每個(gè)字母出現(xiàn)的次數(shù),wg記錄非0的w
char?x[27];?????????????????????????//存儲(chǔ)26個(gè)字母
x[1]?=?‘a(chǎn)‘;
for?(i?=?2;?i?27;?i++)
{
x[i]?=?x[i?-?1]?+?1;
}
n?=?get_weight(w?wg);????????????????????
- 上一篇:基于proteus的LPC2106流水燈
- 下一篇:用C++發(fā)郵件
評(píng)論
共有 條評(píng)論