k叉树的性质_L3图论第03课 哈夫曼树

本文介绍了哈夫曼编码的历史及其在数据通信中的应用,重点讲解了哈夫曼树的构造过程,包括二叉哈夫曼树和K叉哈夫曼树。还探讨了P2168 [NOI2015]荷马史诗问题,涉及字符串编码的前缀条件。分析了如何构建最小长度的编码方案。
摘要由CSDN通过智能技术生成

L3-图论-第03课 哈夫曼树

哈夫曼编码

1951年,哈夫曼在麻省理工学院(MIT)攻读博士学位,他和修读信息论课程的同学得选择是完成学期报告还是期末考试。导师罗伯特·法诺(Robert Fano)出的学期报告题目是:查找最有效的二进制编码。1952年,哈夫曼发表论文《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)中发表了这个编码方法。

在数据通信中,需要将传送的文字转换成二进制的字符串,用0,1码的不同排列来表示字符。例如,需传送的报文为 "Farris is not a Ferris wheel" ,这里用到的字符集为“f a r i s n o t e”,各字母出现的次数为{2,2,4,3,3,1, 1, 1, 1}。现要求为这些字母设计编码。要区分这些字母,如何编码才能让编码后长度最短吗?

87d5af91b7c6ff891ca91e61c0b056f8.png
字符 频率 编码
i 3 00
s 3 01
f 2 110
a 2 111
n 1 1000
o 1 1001
t 1 0110
e 1 1011

让出现频率越高, 编码越短, 就可以得出最短编码.

前缀编码

前缀编码 是指对字符集进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀,

例如:设有abcd需要编码表示(其中,a=0、b=10、c=110、d=11,则表示110的前缀可以是c或者da&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值