问题标签 [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.

0 投票
1 回答
546 浏览

blackberry - 解码压缩的短字符串;不确定使用的压缩 - 更新

我有一个以未知方式压缩字符串的程序。我知道一些输入和产生的输出,但我不确定使用什么来压缩字符串。

这是我的例子。

(只有 38 xa,没有空格或其他任何东西)

(仅 32 xa)

(31 xa,然后 1 b)

(31 xb,然后 1 a)

(与前一个字符串相同,但末尾有一个空格)

任何帮助/建议都会很棒,谢谢!此外,了解这些来自 BlackBerry 8120 可能会有所帮助

0 投票
4 回答
2819 浏览

c++ - 我在某些 I/O 代码上收到错误 C2664

第 293 行是inFile.open(Filename, fstream::binary);

0 投票
3 回答
1888 浏览

c++ - 如何在不使用开关的情况下对字符串进行频率分析

我正在开展一个学校项目,以在文本上实现霍夫曼代码。第一部分当然需要对文本进行频率分析。除了巨大的开关和一系列计数器之外,还有更好的方法吗?

IE:

我想做所有的字母数字字符和标点符号。我正在使用 C++。

0 投票
3 回答
712 浏览

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:我发布了新的/固定的代码。我的根的权重现在等于字节读取。我仍然愿意接受清理此代码的建议。

0 投票
3 回答
936 浏览

c++ - 如何处理文件中的位?

假设我们只想处理文件中的各个位。我知道我们可以逐个字符地读取文件,但是我们可以像这样轻松地一点一点地读取它吗?

0 投票
3 回答
1757 浏览

c++ - 优先队列错误顺序

我正在编写霍夫曼编码。这是我的程序的开始:

程序首先输出字符及其出现次数。这看起来不错:

但是必须按优先级顺序显示节点内容的测试循环输出:

这不是预期的顺序。为什么?

0 投票
2 回答
3186 浏览

c# - 有人对 C# 进行自适应霍夫曼压缩吗?

有人在网上看到过这种源代码吗?

我试过谷歌,似乎没有这个。

自适应霍夫曼编码器好吗?

或者

任何人都可以与我分享它的源代码(C#)吗?

谢谢

0 投票
8 回答
987 浏览

c++ - C++ 本身的结构?

我一直在尝试将此代码移植到 python,但是在 C++ 中有一些我不太了解的东西(我确实知道一点 C++,但这超出了我的范围):

我不明白的是 huffnode_s 本身是如何存在的,我以前从未见过,也不太了解它。这是什么意思,如果有人可以,python 等价物是什么?

0 投票
3 回答
1333 浏览

java - 霍夫曼将两个字符编码为一个

我需要霍夫曼代码(最好在 python 或 java 中),它可以编码文本不是一个字符(a = 10, b = 11),而是两个(ab = 11, ag = 10)。是否有可能,如果是,我在哪里可以找到它,也许它在互联网的某个地方,我只能找到它?

0 投票
3 回答
6084 浏览

java - 对霍夫曼树感到困惑

生成霍夫曼树的快速教程

对霍夫曼树感到困惑。在上面那个链接的末尾附近,它显示了剩下 2 个元素的树,然后是完整的树。我对它的分支方式感到困惑。哈夫曼树是否有特定的分支方式?

例如,57:* 及其右孩子 35:* 向右分支。是不是左边有 35 个分支,右边有 22 个分支?另外,为什么 22:* 不与 15:4 配对 - 它只是与 20:5 配对以创建一棵新树。

从最初的观察看来,这棵树似乎不需要平衡或具有任何特定的顺序,除了叶子的频率加起来就是父节点的值。两个人用相同的数据创建一棵霍夫曼树最终会得到不同的编码值吗?