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