【发布时间】:2015-11-13 08:01:00
【问题描述】:
假设您有一个 C++ 程序,它必须从给定的 .txt 文件中读取文本。该计划将:
- 计算文件中每个字符的出现次数,然后将每个唯一字符(及其频率)存储为一个新的树节点
- 然后程序会构建一个包含这些节点的最小堆,然后使用这个最小堆构建 Huffman 代码树。
- 遍历(前序和有序)将被写入输出文件。树的每个内部节点都有标签 I:xxx,其中 xxx 是 int 标签,叶子有 L:xxx
- 程序最终构建了一个表,其中包含存储为字符串的每个字符的编码(基于 ASCII,不是真正的 .bin 版本)
我想我会像这样将每个节点存储在一个霍夫曼类中:
struct CharNode {
char value;
int frequency;
bool internal;
int label;
CharNode *parent;
CharNode *left_child;
CharNode *right_child;
};
我不确定从哪里开始。任何帮助将不胜感激!
【问题讨论】:
-
第一步是读取 .txt 文件。祝你好运。
标签: c++ decoding huffman-code min-heap