霍夫曼二叉树必须是合适的吗?
Does a Huffman Binary Tree have to be proper?
我能找到的霍夫曼编码的所有例子都有偶数字符的工作。如果是奇数个字符,最后一个添加到树的内部节点可以只有一个子节点吗?或者我必须添加某种类型的NULL节点,以便所有内部节点都恰好有2个子节点?
如果是后者,它似乎令人困惑,因为我不确定您将如何为字符提供NULL值(因为所有值都被用作有效的ASCII码)。
char
的奇数是没有问题的。但这不会导致只有一个子节点的内部节点。
/
/
a ×
/
b c
树的构造方式确保所有内部节点都有两个子节点,无论有多少个char
。
从一个叶子列表开始,然后在每一步中,将频率最低的两棵树连接在一起,使它们成为左边的树。新节点的右子树,然后是内部节点,直到只剩下一棵树。最终结果中的每个内部节点都是由连接两个子树产生的,因此有两个子树。
相关文章:
- 从父数组测试用例构造二叉树失败
- 打印时有二叉树问题.用户输入不打印任何内容
- 试图找到二叉树的深度
- 二叉树结构平衡,使用递归时EXC_BAD_ACCESS
- 指向二叉树中新节点的指针
- 我试图用这段代码找到二叉树的高度,但它一直返回 0,有人可以告诉我为什么吗?
- 实现霍夫曼树
- 大文件的霍夫曼树
- 使用 std::unique_ptr 的霍夫曼树代码不起作用
- 霍夫曼代码,树的初始输入有问题
- 解码霍夫曼树
- 霍夫曼编码树
- 解码霍夫曼树
- 霍夫曼树中的左节点和右节点指针不指向任何内容
- 使用霍夫曼树解码算法/实现
- 从有序列表构建霍夫曼编码树
- 霍夫曼树 - 所有指针都指向同一位置
- 在霍夫曼压缩后将代码表存储在压缩文件中,并从此表构建用于解压缩的树
- 霍夫曼二叉树必须是合适的吗?
- 需要帮助遍历树;霍夫曼编码