Manera eficiente de almacenar el árbol Huffman

Estoy escribiendo una herramienta de codificación / decodificación de Huffman y estoy buscando una manera eficiente de almacenar el árbol de Huffman que se crea para almacenar dentro del archivo de salida.

Actualmente hay dos versiones diferentes que estoy implementando.

Este lee el archivo completo en la memoria carácter por carácter y crea una tabla de frecuencias para todo el documento. Esto solo requeriría generar el árbol una vez y, por lo tanto, la eficiencia no es una gran preocupación, excepto si el archivo de entrada es pequeño. El otro método que estoy usando es leer una porción de datos, aproximadamente 64 kilobytes de tamaño y ejecutar el análisis de frecuencia sobre eso, crear un árbol y codificarlo. Sin embargo, en este caso antes de cada fragmento, tendré que generar mi árbol de frecuencias para que el decodificador pueda reconstruir su árbol y decodificar correctamente el archivo codificado. Aquí es donde entra en juego la eficiencia, ya que quiero ahorrar la mayor cantidad de espacio posible.

En mis búsquedas hasta ahora no he encontrado una buena manera de almacenar el árbol en el menor espacio posible, ¡espero que la comunidad StackOverflow pueda ayudarme a encontrar una buena solución!

Respuestas a la pregunta(5)

Su respuesta a la pregunta