Huffman树及JAVA实现

哈夫曼树是一种带权路径长度最短的二叉树,用于构造带权路径长度最小的树。本文介绍了哈夫曼树的概念,通过一个包含4个权值的例子展示了不同形态的二叉树及其带权路径长度,并提到哈夫曼树在信息论中的应用——哈夫曼编码。文章还预告了将介绍哈夫曼编码的详细内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

哈夫曼(Huffman)树又被称为最优二叉树,是一类带权路径长度最短的数

例子:有4个权值(1,3,5,7),利用这4个权值作为叶子结点构造二叉树


在图示的三个二叉树中:

wp1 = 1*2+3*2+5*2+7*2 = 32

wp2 = 1*3+3*3+5*2+7*1 = 29

wp3 = 1*2+3*3+5*3+7*1 = 33

上例的结果说明,由相同权值的一组叶子结点所构成的二叉树有不同的形态和不同的带权路径

如何构造带权路径长度最小的二叉树,哈夫曼给出了答案,这就是著名的哈夫曼树

了解信息论的同学应该知道著名的Haffman编码,后面的文章会介绍这种编码方式

哈夫曼树的构造过程如下:


import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值