问题标签 [huffman-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
blackberry - 解码压缩的短字符串;不确定使用的压缩 - 更新
我有一个以未知方式压缩字符串的程序。我知道一些输入和产生的输出,但我不确定使用什么来压缩字符串。
这是我的例子。
(只有 38 xa,没有空格或其他任何东西)
(仅 32 xa)
(31 xa,然后 1 b)
(31 xb,然后 1 a)
(与前一个字符串相同,但末尾有一个空格)
任何帮助/建议都会很棒,谢谢!此外,了解这些来自 BlackBerry 8120 可能会有所帮助
c++ - 我在某些 I/O 代码上收到错误 C2664
第 293 行是inFile.open(Filename, fstream::binary);
c++ - 如何在不使用开关的情况下对字符串进行频率分析
我正在开展一个学校项目,以在文本上实现霍夫曼代码。第一部分当然需要对文本进行频率分析。除了巨大的开关和一系列计数器之外,还有更好的方法吗?
IE:
我想做所有的字母数字字符和标点符号。我正在使用 C++。
c++ - 在我构建我的霍夫曼树之后,当我读取 5megs 数据时,根的权重是 700k
所以我的 bytesread var = 大约 5 百万字节,但是到所有这些代码的末尾,我的根的权重 = 0。
如果您无法弄清楚(我将在睡前至少再花一个小时寻找错误),您能给我一些提高效率的提示吗?
编辑:问题是if(freq[i]<min1)
. 首先它应该是与 min1 的叶子 [i]-> 权重比较,因为这是我实际操作以创建树的数组(freq[] 仅具有权重,而不是树节点指针)。所以为了修复它,我做了那行和它后面的 if 语句:if(leaves[i] && leaves[i]->weight<=min1)
和if(leaves[i] && (leaves[i]->weight)<=min2 && i!=wheremin1)
如果您对清理我的代码有更多建议(即某些地方的更多评论,不同的比较方式等),请提出建议。我不是一个伟大的编码员,但我想成为并且我正在努力争取拥有好的代码。
Edit2:我发布了新的/固定的代码。我的根的权重现在等于字节读取。我仍然愿意接受清理此代码的建议。
c++ - 如何处理文件中的位?
假设我们只想处理文件中的各个位。我知道我们可以逐个字符地读取文件,但是我们可以像这样轻松地一点一点地读取它吗?
c++ - 优先队列错误顺序
我正在编写霍夫曼编码。这是我的程序的开始:
程序首先输出字符及其出现次数。这看起来不错:
但是必须按优先级顺序显示节点内容的测试循环输出:
这不是预期的顺序。为什么?
c# - 有人对 C# 进行自适应霍夫曼压缩吗?
有人在网上看到过这种源代码吗?
我试过谷歌,似乎没有这个。
自适应霍夫曼编码器好吗?
或者
任何人都可以与我分享它的源代码(C#)吗?
谢谢
c++ - C++ 本身的结构?
我一直在尝试将此代码移植到 python,但是在 C++ 中有一些我不太了解的东西(我确实知道一点 C++,但这超出了我的范围):
我不明白的是 huffnode_s 本身是如何存在的,我以前从未见过,也不太了解它。这是什么意思,如果有人可以,python 等价物是什么?
java - 霍夫曼将两个字符编码为一个
我需要霍夫曼代码(最好在 python 或 java 中),它可以编码文本不是一个字符(a = 10, b = 11)
,而是两个(ab = 11, ag = 10)
。是否有可能,如果是,我在哪里可以找到它,也许它在互联网的某个地方,我只能找到它?
java - 对霍夫曼树感到困惑
对霍夫曼树感到困惑。在上面那个链接的末尾附近,它显示了剩下 2 个元素的树,然后是完整的树。我对它的分支方式感到困惑。哈夫曼树是否有特定的分支方式?
例如,57:* 及其右孩子 35:* 向右分支。是不是左边有 35 个分支,右边有 22 个分支?另外,为什么 22:* 不与 15:4 配对 - 它只是与 20:5 配对以创建一棵新树。
从最初的观察看来,这棵树似乎不需要平衡或具有任何特定的顺序,除了叶子的频率加起来就是父节点的值。两个人用相同的数据创建一棵霍夫曼树最终会得到不同的编码值吗?