Хранение дерева Хаффмана в файле

Я ищу способ для хранения дерева Хоффмана в файле для дальнейшего прочтения и декодирования.

Моя структура узла (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);
    }
}

Ответы (0 шт):