哈夫曼数据结构实验报告.docx
- ld1356788个人认证 |
- 2021-09-20 发布|
- 116.78 KB|
- 8页
《数据结构》实验报告
班级 : 姓 名 : 学 号:
E-mail: 日 期 :
◎实验题目 :
? P149 哈夫曼编 / 译码器
? 完成 Huffman 编码的译码过程。即输入一个码串,请翻译成相应的字符串。要求有 编码过程和解码过程。
(一 ) 需求分析
1.本程序中,输入是字符串,包括‘ +',‘ -',‘ *',‘ / ',‘(', ‘)',以及 0~9, 在输入的末尾需要加上‘ #'作为标记。
2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示 “提示信息 ”之后,由
用户在键盘上输入相应数据,若正确则输出正确结果,若运算无解,则输入‘ error '。
3.程序执行的命令包括:
(1)从文件读取字符和权值。
(2)构建哈夫曼树。
(3)输出构建的哈夫曼树。
(4)选择 1:对输入的字符串编码。
(5)选择 2:对输入的数字译码。
( 6)选择 0:结束。
4.测试数据
输入
A BGH
输出 字母: A 编码: 1010
字母:
B 编码:
100100
字母:
G 编码:
100101
字母:
H 编码:
0000
字母
编码: 110
(二) 概要设计
(三 ) 详细设计
#include<>
#include<>
#include<>
typedef struct
{
int weight; arent==0)
{
*s1=i;
break;
}
for(j=i+1;j<=n;j++)
if(ht[j].parent==0)
{
*s2=j;
break;
}
for(i=1;i<=n;i++) arent==0) if(ht[*s1].weight>ht[i].weight) if(*s2!=i)
*s1=