- 8
- 0
- 约5.84千字
- 约 12页
- 2018-10-11 发布于重庆
- 举报
哈夫曼树及哈夫曼编码译码的实现 福建农林大学
7 -
福建农林大学计算机与信息学院
(程序设计类课程)
实验报告
课程名称:
数据结构
姓 名:
吴秋月
系:
计算机
专 业:
计算机科学与技术(专升本)
年 级:
2008级
学 号:
081806111
指导教师:
黄思先
职 称:
副教授
福建农林大学计算机与信息学院实验报告
系: 计科(专升本) 专业: 计算机科学与技术 年级: 08级
姓名: 吴秋月 学号: 081806111 实验室号:__田514 计算机号: 18
实验二 哈夫曼树及哈夫曼编码译码的实现
一、实验目的和要求
1,掌握树及二叉树的基本概念
2,熟悉二叉树的运算和应用
3,理解哈夫曼树的概念及哈夫曼编码译码的实现
二、实验内容和原理
实验内容:
输入一个电文字符串,构造出哈夫曼树并实现该字符串的二进制输出,并统计该字符串中的字符总数目及二进制编码的总长度。
实验原理:
哈夫曼树是由n个带权叶子结点构成的所有二叉树中带权路径长度WPL最小的二叉树。本实验中,要输入电文字符以及它的权值,用Hunffman算法构建哈夫曼树。定义一个存储哈夫曼编码结果的二维数组。为使每一个字符编码都不是另一个字符编码的前缀,规定哈夫曼树中左分枝以“0”编码,右分枝以“1”编码。
三、实验环境
硬件环境:
多媒体实验室
学生用微机
局域网环境
软件环境:
Windows xp professional
Turbo C/C++ for windows
四、算法描述及实验步骤
1,算法描述
ht [0] [1] [2] [3] [4] [5] [6] [7]
eq \o\ac(○,3)
eq \o\ac(○,4)
eq \o\ac(○,2)
eq \o\ac(○,10)
5
9
19
3
2
6
1
5
4
5
6
5
7
6
7
w
lch
rch
parent 3,4 ,2,10为叶子权值。
a
b
c
d
3
2
3
1
0
1
1
0
0
0
1
0
1
ch
code
star star star star
2,算法描述及实验步骤
在Turbo C/C++ for windows新建名为huffman.c的c程序项目,然后进行编译调试,若编译链接都通过,则运行程序,得出正确结果。正确的程序代码如下所示:
#include stdio.h
#include conio.h
#include string.h
#define N0 10
typedef struct node1
{ int w,lch,rch,parent;
}HFT[2*N0-1+1]; // 哈夫曼树结点的数据类型
HFT ht;
struct node2
{ char ch;
int start;
int code[N0];
}hc[N0+1]; // 字符的哈夫曼编码信息的数据类型
int n,m;
void select(in
您可能关注的文档
最近下载
- 专题2 数据采集与编码 学案(含解析)2025届高中信息技术.DOCX VIP
- 高中地理课件湘教版:1-1中国的人口和民族.ppt
- 鲁科版高中化学选择性必修1第3章物质在水溶液中的行为3.3.2沉淀溶解平衡的应用课件(内嵌音频+视频).ppt VIP
- 建筑施工安全管理论文【推荐】.doc VIP
- 2025年高考地理识图填图完全手册(扫描版).docx
- 防火封堵材料 GB23864-2023.pdf
- 专题2 数据采集与编码 课件 2025届高中信息技术.pptx VIP
- 专题1 数据与大数据 课件 2025届高中信息技术.pptx VIP
- 鲁科版高中化学选择性必修1第3章物质在水溶液中的行为3.3.1沉淀溶解平衡与溶度积(内嵌音频+视频).ppt VIP
- 2025年甘肃省高考物理试卷(含答案解析).docx VIP
原创力文档

文档评论(0)