20182303 哈夫曼编码实践
哈夫曼编码实践 实践要求 设有字符集:S={a,b,c,d,e,f,g,h,i,j,k,l,m,n.o.p.q,r,s,t,u,v,w,x,y,z}。 给定一个包含26个英文字母的文件,统计每个字符出现的概率,根据计算的概率构造一颗哈夫曼树,并完成对英文文件的编码和解码。 要求: (1)准备一个包含26个英文字母的英文文件(可以不包含标点符号等),统计各个字符的概率; (2)构造哈夫曼树; (3)对英文文件进行编码,输出一个编码后的文件; (4)对编码文件进行解码,输出一个解码后的文件; (5)撰写博客记录实验的设计和实现过程,并将源代码传到码云; (6)把实验结果截图上传到云班课。 实现过程 准备一个包含26个英文字母的英文文件, HuffmanNode 类 每个结点都包含六项内容:权值、结点代表字母、字母的编码、左孩子、右孩子和父结点。 private double weight; //权值 private T word; // 字母 private HuffmanNode left; private HuffmanNode right; private HuffmanNode parent; String code; // 存储最后的编码 HuffmanTree 类 createTree方法用于构造树; public static HuffmanNode createTree