我正在尝试创建一个霍夫曼树,我在网上阅读几个链接时感到有点困惑。有些人在左边或右边添加了更大的(在重量方面)子节点。
所以我的问题:
(1)是否真的要在哪里添加节点(左侧或右侧)?
(2)我可以在Left中添加权重更大或重量更轻的节点吗?
感谢您的帮助。
答案 0 :(得分:1)
只要你保持一致,就没有区别。
要么将所有放在左侧儿童的较低权重上,将所有放在右侧儿童的较高权重上,反之亦然。
在底线,left
和right
只是代码中的变量名,没有任何物理意义。
<强>更新强>
如果你不一致,那么得到的霍夫曼树不一定会产生使用霍夫曼压缩算法对给定输入实现的最佳压缩。