实验三、Huffman编码(二叉树)
实验目的:熟练掌握二叉树应用(Huffman编码)的基本算法实现。
实现功能:对输入的一串电文字符实现Huffman编码,再对Huffman编码生成的代码串进行译码,输出电文字符串。实现功能如下:
• Huffman树的建立
• Huffman编码的生成
• 编码文件的译码
实验机时:4
设计思路:
数据结构:
#define n 100 //叶子结点数
#define m 2*n-1 // Huffman树中结点总数
typedef struct {
int weight; //权值
int lchild , rchild , parent; //左右孩子及双亲指针
}HTNode; //树中结点类型
typedef HTNode HuffmanTree[m+1]; //0号单元不用
主要实现函数:
统计字符串中字符的种类以及各类字符的个数的函数
构造Huffman树的函数
Huffman编码的函数
建立正文的编码文件的函数
代码文件的译码函数
主函数
1