- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个只有一个字符的大字符串,比如 x
.我需要使用霍夫曼编码。
霍夫曼编码是完全二叉树。那么当我们根本不需要两片叶子时,如何为单个字符创建霍夫曼代码?
最佳答案
jbr的回答很好;这只是它的更长版本。
假设解码器已经知道符号集,Huffman 旨在生成包含原始符号序列中所有信息的最小长度的位序列。如果只有一个符号,则输入数据除了其长度外不包含任何信息。
在基于霍夫曼的数据格式中,长度通常是单独编码的,而不是作为霍夫曼编码位序列本身的一部分。因此,单符号霍夫曼码的解码器拥有重建输入所需的所有信息,而无需从霍夫曼编码的位序列中读取任何内容。那么,霍夫曼编码器的输出应该是 0 位长是合乎逻辑的。
如果您没有单独编码的长度,那么您必须有一个符号来表示序列结束,以便解码器知道何时停止读取。那么你的霍夫曼树将有 2 个节点,你不会遇到这种特殊情况。
关于huffman-code - 单个字符的霍夫曼代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22429854/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我这样定义了一个二叉树: struct btree { int x; btree* left_child = nullptr; btree* right_child = nul
我有这个霍夫曼代码,旨在返回数组中每个字母的霍夫曼代码并按字母顺序打印它们。问题是它不生成任何输出,而是继续处理,直到我手动退出它。谁能帮我找出错误吗?我认为我的代码是正确的,但我不知道无限循环从何而
动机 想象一下一个哈夫曼压缩文件被部分下载,就像在p2p软件中一样,所以我们首先为整个文件分配磁盘空间,然后开始随机下载文件块。其中一个哈夫曼密码(但我们不知道是哪一个)是一个结束密码,所以如果这个密
以下 block 由霍夫曼 block 标记嵌套 -HUFF---------------------------------------------------------------------0
我是一名优秀的程序员,十分优秀!