El algoritmo debe ser capaz de contar las letras y generar una compresion, mostrando a traves de un OUTPUT el diccionario utilizado para la compresion.
Luego ese mismo output, debe ser puesto en una descompresion y debe generar el texto anterior.
El texto a utilizar es un Lorem Ipsum de la pagina https://es.lipsum.com/
El programa tiene las siguientes consideraciones,
Mi profesor me ha pedido que a mi codigo ( que pondre mas abajo) le agregue las siguientes caracteristicas:
-Ingresar el archivo con el texto desde una ubicacion -Debe reconocer los espacios y las comas. -generar una salida con el diccionario y los datos comprimidos como 11010011, etc -una vez comprimido, debe ser ingresado en un Descompresor el output anterior -Debe mostrar el texto re-Generado
Hola, vi el enunciado y solo me queda una pregunta y es la cantidad de bits o dígitos debe tener. Investigando sobre el código de Huffman por aquí y por allá me topé con este video que explica el algorítmo de Huffman [url]https://youtu.be/8Gf8wutvS1w[/url]Entonces siguiendo lo los pasos hice el código. Luego me surgió la duda por la cantidad de dígitos que debe llevar cada caracter. Para solucionar eso lo que hice completar con ceros a la izquierda.
Por ejemplo para la frase: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sed. ; El diccionario que genera es:
Si no relleno con estos ceros como podría diferencia de una m de una e; entonces lo que hice fue rellenar con ceros a la izquierda.
La clase principal es ArbolHuffman.java En ella he modulado la lógica del programa para que sea mas entendible lo que está pasando. La clase Simbolo.java representa cada caracter de la frase, además de contar con las propiedades frecuencia y codificación. La clase Nodo.java representa un nodo del arbol binarioComo uno de los requerimientos es cargar el contenido de un archivo y codificarlo, en caso de no tener el contenido del archivo entonces queda la asignación de la variable frase que al final será codificada.