Advertisement

Java实现哈夫曼编码与解码

阅读量:

哈夫曼压缩与解压缩(java版)

一哈夫曼树以及文件压缩原理:

1.哈夫曼树的构建与应用

假设有N个权值被设定为N个叶子结点,通过构建一棵二叉树,当该树的带权路径长度达到最小值时,这样的二叉树被称为最优二叉树,同时它也被称为哈夫曼树。哈夫曼树是一种在所有可能的二叉树中具有最短带权路径长度的结构,其中权重较大的节点通常更接近根节点(即出现频率较高的节点距离根节点更近)。

以下以一个数组为例,进行哈夫曼树的构建过程。

复制代码
    int a[] = {0,1,2,3,4,5,6,7,8}
    

通过观察可以总结出以下特征

1:由9个数值构建的哈夫曼树总共包含17个节点,这表明对于n个数值而言,其生成的节点总数为2*n-1。

2:数值较大的元素在树结构中更接近根节点,而数值较小的元素则与根节点的距离相对较远。

2.如何利用haffman编码实现文件压缩:

例如,在ab

全部评论 (0)

还没有任何评论哟~