huffman树_Java实现Huffman算法

本文探讨了Huffman编码的无损压缩原理,通过让高频字符使用短编码实现数据压缩。博客指出,对于n个叶子节点的Huffman树,总节点数为2n-1,并提出利用二叉树的数组表示法来构建Huffman树,增加了leftChild、rightChild和parent属性,简化了树的构建过程。
摘要由CSDN通过智能技术生成
//huffman编码是一种无损压缩算法,原理是让出现频率高的字节用较短的编码来代替,

测试文件

2f85f69d381e8b8dbd8d5a7f66c05a35.png
测试结果
100  4
98  28
99  19
97  34
10  2
13  2
100  00111
98  000
99  0010
97  01
10  001101
13  001100

-----------------

还有一种更为优雅的做法就是构建一个数组来构建,n个叶子节点构造出来的huffman树总的节点数为2n-1

这个很好证明,因为需要合并n-1次才能合并出根节点,每次都会多一个节点,所以一共会有2n-1个节点,利用二叉树的数组表示法,Node节点增加leftChild rightChild parent三个引用,就是一颗二叉树了,殊途归同,一个道理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值