当前位置:首页 > 数据结构课程设计哈夫曼编译器
六.测试结果 1.
2.
. . .
七.心得体会
通过本次实验,我复习了数据结构中常见的一种结构——树形结构,本次实验对象是一种特殊的树结构,即哈夫曼树。通过构造哈夫曼树,我熟练掌握了树的构建及其要素。而编码和译码是在以了解树形结构的基础上,考验我的算法分析与设计能力。而字符统计及文件连接又涉及到许多文件操作,这使我深入了解了java关于文件的库函数及操作语句。这些提高了我在程序设计上的综合能力。 同时,本次实验也出现了一些问题如在数组、文件等操作上考虑不周,使程序运行结果不尽如人意。但通过多次的调试及测试,我逐步改正了这些问题。这使我认识到调试的重要性,即编写程序不仅要知道怎么实现,更要知道怎么找出错误并改正错误,这是很重要的一项技能。
. . .
八.源代码 主类
package Huffman; import java.io.File; import java.io.FileReader; import java.io.FileWriter;
public class Main {
public static Huffmantree[] tree; public static Codetype[] Code;
public static void main(String[] args) throws Exception {
float len; int n=1;
int[] sum=new int[50000];
char[] ch=new char[50000];
File file=new File(\原文件.txt\
FileReader fr=new FileReader(file);
char[] a=new char[(int)file.length()]; fr.read(a); fr.close();
len=a.length; //len为文件长度,n为字符种类数 for(int i=0;i for(int j=0;j if(a[i]==ch[j])break; else if(j==n-1){ch[n-1]=a[i]; n++; break; . . . } } }//初始化ch[],存放字符种类 System.out.println(\文件中容如下:\ for(int u=0;u System.out.println(\ . . 文件中各字符及其出现次数如下:\tree[i]=new Huffmantree(); 建立哈夫曼树 . } System.out.println(\ for(int i=0;i for(int i=0;i System.out.println(ch[i]+\ } int i,j,p1,p2,x; n--; int m=n*2-1; tree=new Huffmantree[m]; for(i=0;i float small1,small2; // for(i=0;i tree[i].parent=0; tree[i].lchild=-1;
共分享92篇相关文档