哈夫曼树及哈夫曼编码译码的实现-福建农林大学.docVIP

  • 2
  • 0
  • 约4.3千字
  • 约 13页
  • 2023-08-27 发布于浙江
  • 举报

哈夫曼树及哈夫曼编码译码的实现-福建农林大学.doc

哈夫曼树及哈夫曼编码译码的实现 - 福建农林大学 福建农林大学计算机与信息学院 (程序设计类课程) 实验报告 课程名称: 数据结构 姓 名: 吴秋月 系: 计算机 专 业: 计算机科学与技术(专升本) 年 级: 2008级 081806111 学 号: 指导教师: 黄思先 职 称: 副教授 - 1 - 福建农林大学计算机与信息学院实验报告 系: 计科(专升本) 专业: 计算机科学与技术 年级: 08级 姓名: 吴秋月 学号: 081806111 实验室号:__田514 计算机号: 18 实验二 哈夫曼树及哈夫曼编码译码的实现 一、实验目的和要求 1,掌握树及二叉树的基本概念 2,熟悉二叉树的运算和应用 3,理解哈夫曼树的概念及哈夫曼编码译码的实现 二、实验内容和原理 实验内容: 输入一个电文字符串,构造出哈夫曼树并实现该字符串的二进制输出,并统计该字 符串中的字符总数目及二进制编码的总长度。 实验原理: 哈夫曼树是由n个带权叶子结点构成的所有二叉树中带权路径长度WPL最小的二 叉树。本实验中,要输入电文字符以及它的权值,用Hunffman算法构建哈夫曼树。定 义一个存储哈夫曼编码结果的二维数组。为使每一个字符编码都不是另一个字符编码的 前缀,规定哈夫曼树中左分枝以“0”编码,右分枝以“1”编码。 三、实验环境 硬件环境: 多媒体实验室 学生用微机 局域网环境 软件环境: Windows xp professional Turbo C/C++ for windows 四、算法描述及实验步骤 1,算法描述 - 2 - - 3 - - 4 - - 5 - ht [0] [1] [2] [3] [4] [5] [6] [7] 34210 w 5 919 ?? ? ? lch 32 6 rch 1 5 4 parent 5 6 5 7 67 3,4 ,2,10为叶子权值。 ch a b c d 3 2 3 1 0 1 1 0 0 01 0 1 code star star star star 2,算法描述及实验步骤 在Turbo C/C++ for windows新建名为huffman.c的c程序项目,然后进行编译调试,若编译 - 6 - 链接都通过,则运行程序,得出正确结果。正确的程序代码如下所示: #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(int t, int *s1, int *s2) //选择一个权值最小和次小的结点作为叶子结点 { int w1=32767,w2=w1,i; for(i=1; i=t; i++) if( ht[i].parent==0 ) //先找出前面2个无双亲(即未合并的)结点的位置 if( ht[i].w w1 ) //选择权值最小和次小的数 { w2=w1; *s2=*s1; w1=ht[i].w; *s1=i; //s1指向最小的数 } else if( ht[i].w w2 ) { w2=ht[i].w; *s2=i; //s2指向次小的数 } } void creat_ht_hc() // 建立哈夫曼树的函数 { int s1,s2,i,child,parent; freopen(huffman.in, r, stdin); //读取文件信息,文件名为huffman.in freopen(huffman.out, w, stdout); //写入文件信息,文件名为huffman.out scanf(%d, n); //输入叶子个数n m=2*n-1; //总结点数m为2*n-1 - 7 - for(i=1; i=n; i++) //分别输入叶子字符以及它的权值 { scanf(\n%c%d, hc[i].ch, ht[i].w); } for(i=n+1; i=m; i++) //建树 { select( i-1, s1, s2 ); //调用select()函数 ht[i].w = ht[s1].w+ht[s2].w; ht[i].lch=s1; //ht[i]左孩子指向最小的数

文档评论(0)

1亿VIP精品文档

相关文档