树 —— 哈夫曼树和哈夫曼编码

本文介绍了哈夫曼树的基本概念,包括带权路径长度和构造方法,并通过实例展示了如何构建哈夫曼树。此外,还讲解了哈夫曼编码的原理,强调了其前缀编码的特点以及在信息编码中的优势。最后提到了哈夫曼n叉树的概念。

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

基本概念

哈夫曼树又叫最优二叉树,它是由 n 个带权叶子结点构成的所有二叉树中带权路径长度 WPL 最短的二叉树。

  • 路径:指从一个结点到另一个结点之间的分支序列。

  • 路径长度:指从一个结点到另一个结点所经过的分支数目。

  • 树的路径长度:树中所有叶子结点的路径长度之和。

  • 权:给树的每个结点赋予一个具有某种实际意义的实数,我们称该实数为这个结点的权。

  • 带权路径长度:在树形结构中,我们把从树根到某一结点的路径长度与该结点的权的乘积,叫做该结点的带权路径长度。

  • 树的带权路径长度:树中所有叶子结点的带权路径长度之和。

在这里插入图片描述
如图所示,叶子结点 A、B、C、D 的权值分别为 7、5、2、4,因为 A 到根结点的分支数目为2,所以 A 的路径长度为2,A 的带权路径长度为 5*2=10、3*2=6、4*2=8,故这棵二叉树的带权路径长度为 WPL=14+10+6+8=38


哈夫曼树的构造方法

给定 n 个权值,用这 n 个权值来构造赫夫曼树的算法描述如下:

(1)将这 n 个权值分别看作只有根结点的 n 棵二叉树,这些二叉树构成的集合记为 F

(2)在森林 F 中选择两棵根结点权值最小的二叉树&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值