Хранение дерева Хаффмана в файле
Я ищу способ для хранения дерева Хоффмана в файле для дальнейшего прочтения и декодирования.
Моя структура узла (Node):
struct Node
{
char ch;
int freq;
Node *left, *right;
Node(char symbol, int frequency, Node *left_Node, Node *right_Node) : ch(symbol),
freq(frequency),
left(left_Node),
right(right_Node){};
};
Я использую указатели и не уверен как всё это сохранять.
Построение дерева:
void buildTree(std::priority_queue<Node *, std::vector<Node *>, comp> &pq, std::multimap<int, char> &freqsTable)
{
for (auto pair : freqsTable)
{
Node *node = new Node(pair.second, pair.first, nullptr, nullptr);
pq.push(node);
}
while (pq.size() != 1)
{
Node *left = pq.top();
pq.pop();
Node *right = pq.top();
pq.pop();
int freqsSum = left->freq + right->freq;
Node *node = new Node('\0', freqsSum, left, right);
pq.push(node);
}
}