- 6
- 0
- 约8.86千字
- 约 20页
- 2021-10-18 发布于浙江
- 举报
四川大学计算机学院
多媒体课程实验报告
?
?
实验名称:Huffman编码(二叉树应用)
指导教师: 沈琳
姓名:侯静
学号:0943041267
班级日期:2010.12.10
一、实验号题目:
Huffman编码(二叉树应用)
实验的目的和要求:
要求对文件进行Huffman编码的算法,以及对乙编码文件进行解码的算法,为简单起见,可以假设文件是存放在一个字符向量;
熟练掌握二叉树的应用;
熟练掌握计算机系统的基本操作方法,了解如何编辑、编译、链接和运行一个C++程序及二叉树上的基本运算; 具体要求如下:
最小冗余码/哈夫曼码
● ASCII码/定长码
ab12:0110001000110010
97 98 49 50
● 哈夫曼码/不定长码
能按字符的使用频度,使文本代码的总长度具有最小 值。
例. 给定有18个字符组成的文本:
A A D A T A R A E F R T A A F T E R
字 符
A
D
E
F
T
R
频 度
7
1
2
2
3
3
求各字符的哈夫曼码。
(1) 统计:
(2) 构造Huffman树:
(2) 构造Huffman树: (3) 在左分枝标0,右分枝标1:
(4) 确定Huffman编码:
字 符
A
D
E
F
T
R
频 度
7
1
2
2
3
3
编 码
0
1010
1011
100
110
111
特点:任一编码不是其它编码的前缀
例. 给定代码序列:
0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 10
文本为:A A F A R A D E T
上机调试程序,掌握查错、排错使程序能正确运行。
三、实验的环境:
1.硬件环境: intel core i5 460处理器,2G内存
2.软件环境:windows 7,Visual Studio 2010 Ultimate
四、算法描述:
1.主函数流程图
2.函数Code()流程图
CreatFromSourceFile( )
CreatFromSourceFile( )
3.函数UnCode()流程图
五、源程序清单:
Huffman.h
const unsigned int n=256; //字符数
const unsigned int m=256*2-1; //结点总数
struct HTNode{ //压缩用Huffman树结点
unsigned long weight; //字符频度(权值)
unsigned int parent,lchild,rchild;
};
struct Buffer{ //字节缓冲压缩用Huffman树
char ch; //字节
unsigned int bits; //实际比特数
};
class HuffmanTree{ //Huffman树
public:
void Code(); //编码
void UnCode(); //译码
private:
HTNode HT[m+1]; //树结点表(HT[1]到HT[m])
char Leaf[n+1]; //叶结点对应字符(leaf[1]到leaf[n])
char *HuffmanCode[n+1]; //叶结点对应编码(*HuffmanCode[1]到*HuffmanCode[n])
unsigned int count; //频度大于零的字符数
unsigned int char_index[n]; //字符对应在树结点表的下标(char_index[0]到char_index[n-1])
unsigned long size; //被压缩文件长度
FILE *infp,*outfp; //输入/出文件
Buffer buf; //字符缓冲
void Stat(); //统计字符出现频度并过滤掉频度为零的字符
//在HT[0]~HT[k]中选择parent为-1,树值最小的两个结点s1,s2
void Select(unsigned int k
您可能关注的文档
最近下载
- 公共营养师考试二级练习题及答案.docx VIP
- 2023注册消防工程师(消防安全技术实务)题库含答案【基础题】.docx
- 初三化学酸碱盐知识点精讲笔记.pdf VIP
- 处方前置审核系统在合理用药管理中的应用.pptx
- 2024年浙江省中考科学试题卷(含答案解析).docx
- 中级注册安全工程师考试题库精编.docx
- 2026年郴州职业技术学院高职单招职业适应性测试模拟试题及答案解析.docx VIP
- 基于杜邦分析法的BA公司盈利能力分析.doc VIP
- (整理版)浙江省绍兴县杨汛桥镇中学九年级数学上册练习8(无答案)浙教.pdf
- 2026年山东省中考数学一轮知识点梳理复习 第一章 第二节 二次根式 课件.pptx VIP
原创力文档

文档评论(0)