基于 Huffman 树的文件压缩 项目中遇到的问题的汇总
1、压缩的分类?
答:根据压缩之后的结果是否有损害,可分为有损压缩和无损压缩。解压缩的结果与源文件完全一样的是无损压缩,常用于对文本文件的压缩。解压缩的结果不能被完全还原是有损压缩,多用于图片、视频文件的压缩。
2、你这个项目的压缩原理什么?
(1) 基于 Huffman 编码的文件压缩:
● 获取源文件中的每一个字节出现的次数;
● 根据字节出现的频率,构建 Huffman 树;
● 获取编码;
● 使用获取到的字节编码对源文件进行改写。
(2) 压缩过程:
第一步:统计源文件中每个字节出现的次数;
第二步:根据统计的结果创建 Huffman 树;
① 根据所给的权值创建 n 个只有根节点的二叉树森林 F;
② 循环进行以下操作,直至 F 中剩余一颗二叉树为止。
● 从 F 中获取根节点的权值最小的两颗二叉树;
● 以这两棵树作为左右子树创建一颗新的二叉树,其根节点的权值为左右孩子节点中权值之和;
●