寒时enjoy 发表于 6 天前

以前学哈夫曼树的时候困扰我很久

kokoFC 发表于 6 天前

## ①

**答:** 文本只有一种字符如`AAAAAA`时,哈夫曼树退化为单个叶子节点,递归`genCode`会生成空字符串`""`作为该字符的编码。
`path == ""`是根节点特判:根节点初始路径为空,若不加该判断,会把根(同时是叶子)输出空编码。空编码是非法前缀码,解码器无法区分空串和字符,这个特判用来处理只有单个符号的边界情况,避免生成空码。

lzwjz 发表于 6 天前

数据结构用的?

YY芋圆 发表于 6 天前

对于很多东西还不知道的我———小萌新,来说,今天的扩展知识真是让人头晕脑胀啊。。。
但是,今天的哈夫曼编码让我有了一个大概的了解。不过最感慨的还是,原来树状分析图能这么有用处。

zhae89 发表于 6 天前

看一看有没有新想法

高山 发表于 6 天前

YY芋圆 发表于 2026-10-5 09:40
对于很多东西还不知道的我———小萌新,来说,今天的扩展知识真是让人头晕脑胀啊。。。
但是,今天的哈夫 ...

嗯嗯,二叉树也是数据结构的一个很大的要点哦

捭阖jacky 发表于 6 天前

本帖最后由 捭阖jacky 于 2026-10-5 11:05 编辑

学习了。还是新手,正在努力提升中。

jinzhao666 发表于 6 天前

着实让我看不明白了

小芒果炒酸奶 发表于 6 天前

精华贴,谢谢分享

Sora-空 发表于 6 天前

茅塞顿开!先思考了第二个问题:哈夫曼的重点在加权。另,通过帖中“哈夫曼编码短板”部分,“每个符号至少要 1 个比特。如果某个符号的概率高达 0.9,熵算下来只需要 0.15 bit,可哈夫曼最少也得给 1 bit”,所以我想:当一串长字符,且概率高度倾斜时,哈夫曼码长会长于定长编码的

Sora-空 发表于 6 天前

Sora-空 发表于 2026-10-5 14:04
茅塞顿开!先思考了第二个问题:哈夫曼的重点在加权。另,通过帖中“哈夫曼编码短板”部分,“每个符号至少 ...

≡ω≡萌新在读代码时发出SOS的叫声。

高山 发表于 6 天前

Sora-空 发表于 2026-10-5 14:04
茅塞顿开!先思考了第二个问题:哈夫曼的重点在加权。另,通过帖中“哈夫曼编码短板”部分,“每个符号至少 ...

是的,但对于重复率高的编码哈夫曼就有优势啦~

mobezone 发表于 6 天前

数据结构的回旋镖{:5_107:}

龙文韬 发表于 6 天前

怎么是这个打卡,是不是发错了

subin111 发表于 6 天前

看不懂

圆圆的哈密瓜 发表于 6 天前

按出现频率/价值分配资源,自底向上合并最小项,才能以最小代价逼近最优极限。

Richardpf 发表于 6 天前

学到了!哈夫曼精髓就是自底向上,每次取最小两个合并,叶子路径即前缀码。ABRACADABRA 压到 23 bit,离熵 22.44 只差一点。编码方案不唯一,左右分支和同权值顺序可换,码长/总长不变。

佛耶戈 发表于 6 天前

打卡

yc学Python 发表于 6 天前

只看懂了通信原理里面学的熵,好难啊

忘川hd 发表于 6 天前

有点懵懵的
页: 1 2 [3] 4
查看完整版本: [参与有奖]给你一串编码,你有什么办法把他压到最短?【哈夫曼编码】