哈夫曼数据结构实验报告.docx

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

《数据结构》实验报告

班级 : 姓 名 : 学 号:

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=

最近下载