数据结构考研笔记(十六) ——哈夫曼树、编码应用

带权路径长度

路径长度 : 路径上所经历边的个数。
结点的权 : 结点被赋予的数值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

哈夫曼

哈实曼树也称最优二叉树,含有n个带权叶子结点带权路径长度最小的二叉树

构造

  哈夫曼树的构造算法
  1)将n个结点作为n棵仅含有一个根结点的二叉树,构成森林F;
  2)生成一个新结点,并从F中找出根结点权值最小的两棵树作为它的左右子树,且新结点的权值为两棵子树根结点的权值之和;
  3)从F中删除这两个树,并将新生成的树加入到F中;
  4)重复2,3步骤,直到F中只有一棵树为止。

如下图,生成一个新的结点,然后在F中找到最小的两个权值的树,作为新结点的左右子树。然后新结点的权值就为左右子树之和
在这里插入图片描述
在这里插入图片描述

性质

   哈夫曼树的性质
   1)每个初始结点都会成为叶节点,双支结点都为新生成的结点
   2)权值越大离根结点越近,反之权值越小离根结点越远
   3)哈夫曼树中没有结点的度为1
   4)n个叶子结点的哈夫曼树的结点总数为2n-1,其中度为2的结点数为n-1。

应用

编码问题
编码对于一个字符串序列,用二进制来表示字符。
固定长度编码
在这里插入图片描述
前缀编码没有一个编码是另一个编码的前缀
在这里插入图片描述

哈夫曼树构造前缀编码

在这里插入图片描述
哈夫曼树并不唯一,所以每个字符对应的哈夫曼编码也不唯一,但带权路径长度相同且最优

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sf9090

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值