前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >赫夫曼编码的生成方法及原理

赫夫曼编码的生成方法及原理

作者头像
用户11070251
发布2024-04-11 14:46:25
640
发布2024-04-11 14:46:25
举报
文章被收录于专栏:PomathPomath

1.如何构建一个赫夫曼树?(假设有n个权值)

1.以权值作为根节点构建n棵二叉树,组成森林。 2.在森林中选出2个根节点最小的树合并,并作为一棵新树的左右子树,并且新树的根节点为其左右子树的根节点之和。 3.从森林中删除刚才选取的两棵树,并将新树加入森林。 4.重复2,3步骤,直到只剩一棵树为止,该树即为赫夫曼树。

2.示例

给出一串字母:ABBBCCCCCCCCDDDDDDEE,构建他的赫夫曼树。

1.先计算出每个字母出现的频率(权值,这里直接用出现的次数)。

A

B

C

D

E

1

2

8

6

2

2.利用这些权值构建一棵赫夫曼树(又称霍夫曼树,哈夫曼树,最优二叉树)。

根据“左0右1”的原则,求得的赫夫曼编码:

A

B

C

D

E

1110

110

0

10

1111

3.总结

1.n个权值构建出来的赫夫曼树拥有n个叶子节点。

2.每个赫夫曼编码都不是另外一个赫夫曼编码的前缀。

3.赫夫曼树带权路径长度最短的树,权值较大的节点离根较近。

4.带权路径的长度:树中所有的叶子节点的权值乘其到根节点的路径长度与最终的赫夫曼编码长度成正比关系。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.如何构建一个赫夫曼树?(假设有n个权值)
  • 2.示例
  • 3.总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档