(未学懂,待填坑)【数据结构】哈夫曼树

本文介绍了哈夫曼树的基本概念,包括其定义、构造方法和遍历过程。此外,详细阐述了哈夫曼编码的原理,指出它是依据字符出现概率构建的最短编码方式。文中提及了一道相关题目——P2168 [NOI2015] 荷马史诗,并提到在解决实际问题时可能需要考虑补点策略来确保正确合并。
摘要由CSDN通过智能技术生成

知识点

一 . 哈夫曼树的定义、构造及其遍历

哈夫曼树也被称为最优二叉树,对于给定的一系列带权的叶子结点,带权路径长度WPL(Weighted Path Length)最短的二叉树。

哈夫曼树中的叶节点的个数比非叶节点的个数多一。

二 . 哈夫曼编码/霍夫曼编码 / Huffman编码

哈夫曼编码是可变字长编码(ULC)的一种。

1952年由Huffman提出的一种编码方法。完全依照字符出现的概率来构造编码,使其成为平均长度最短的编码方式,有时称为最佳编码。

哈夫曼编码的码字(各符号的代码)是异前置码字,即任一码字不会是另一码字的前面部分,这使各码字可以连在一起传送,中间不需要另外加隔开的符号,只要传送的时候不出错,接收端仍可以分离各个码字,不致混淆。


模板题

例题:P2168 [NOI2015] 荷马史诗 

思路:(待填坑)

这道题实际上要求k叉Huffman树,及由两个分叉变为k个分叉(k叉树)。

但真正去跑的时候你才发现,最后一次合并之后,堆中剩下m个值。但如果1<m<k,即没有达到堆中只剩一个值不能合并

所以我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值