Tag: 霍夫曼代码

malloc:***对象的错误:没有分配被释放的指针***在malloc_error_break中设置一个断点来调试

有人可以帮我弄清楚我在哪里得到这个错误。 我知道它可能是双重删除或类似的东西。 对于背景,这是huffman树的一个实现,你可以在维基百科上轻松实现。 CharCountNode类实现 int main() { ifstream input; input.open(“input.txt”); MinPriorityQueue heap; map m; while(input.good()) m[input.get()] += 1; for( map::const_iterator it = m.begin(); it != m.end(); ++it ) heap.enqueue(CharCountNode(it->first, it->second)); while(heap.getSize() > 1) { CharCountNode a, b, parent; a = heap.dequeue(); b = heap.dequeue(); parent = CharCountNode(‘*’, a.getCount() + b.getCount()); parent.left = &a; parent.right = […]

保存霍夫曼代码的问题?

我想将霍夫曼代码保存到文件中。 我怎样才能做到这一点? 我将霍夫曼代码保存为字符串,但生成的文件大小比原始文件大。

将文件以位forms写入C中的文件

我在C中实现了霍夫曼算法。我已经获得了基本function,直到获得二进制代码字。 例如,abcd将是100011000或类似的东西。 现在的问题是如何在压缩文件中以二进制forms编写此代码。 我的意思是如果我正常写它每1和0将是一个字符,所以没有压缩。 我需要用它们的位forms写出1和0。 是这样可能在C.如果是这样如何?