Métodos públicos | |
size_t | encode (ifstream &input, BitArray &bit_stream) |
Codifica el texto input. | |
size_t | encode (char *input, BitArray &bit_stream) |
Codifica el texto input. | |
BinNode< string > * | generate_huffman_tree (const bool &with_freqs=false) |
Genera el árbol de prefijos de Huffman. | |
Freq_Node * | get_freq_root () |
Retorna la raíz de un árbol de frecuencias. | |
BinNode< string > * | get_root () |
Retorna la raíz del árbol decodificador de Huffman. | |
Huffman_Encoder_Engine () | |
Constructor de codificador. | |
void | read_input (ifstream &input, const bool &with_freqs=false) |
Lee un archivo, contabiliza las frecuencias de sus distintos símbolos y genera el árbol binario de prefijos. | |
void | read_input (char *input, const bool &with_freqs=false) |
Lee una cadena caracteres, contabiliza las frecuencias de sus distintos símbolos y genera el árbol binario de prefijos. | |
void | set_end_of_stream (const string &str) |
Define el símbolo fin de entrada. | |
void | set_freq (const string &str, const size_t &freq) |
Define la frecuencia de aparición de un símbolo. |
Definición en la línea 111 del archivo Huffman.H.
size_t encode | ( | ifstream & | input, | |
BitArray & | bit_stream | |||
) | [inline] |
encode(input,bit_stream) lee la entrada input, la codifica y escribe el texto codificado en el arreglo de bits bit_stream.
[in] | input | archivo con los caracteres del texto a codificar. |
[out] | bit_stream | el arreglo de bits donde escribir el texto codificado. |
domain_error | si el árbol de prefijos no ha sido generado mediante el método generate_huffman_tree() |
size_t encode | ( | char * | input, | |
BitArray & | bit_stream | |||
) | [inline] |
encode(input,bit_stream) lee la entrada input, la codifica y escribe el texto codificado en el arreglo de bits bit_stream.
[in] | input | cadena de caracteres contentiva del texto a codificar. |
[out] | bit_stream | el arreglo de bits donde escribir el texto codificado. |
domain_error | si el árbol de prefijos no ha sido generado mediante el método generate_huffman_tree() |
BinNode<string>* generate_huffman_tree | ( | const bool & | with_freqs = false |
) | [inline] |
generate_huffman_tree(with_freqs) ejecuta el algoritmo de Huffman para generar el árbol de prefijos en función del texto leído. Si with_freqs es true, entonces los nodos del árbol generado contienen las frecuencias de aparición de los símbolos.
[in] | with_freqs | si el valor es true, entonces los nodos del árbol generado contendrán las frecuencias de aparición de los símbolos. De lo contrario, el árbol sólo contiene los símbolos. |
bad_alloc | si no hay suficiente memoria. |
Definición en la línea 241 del archivo Huffman.H.
Hace referencia a BinNode::get_key(), GenBinHeap::getMin(), GenBinHeap::insert(), LLINK, RLINK, y GenBinHeap::size().
Referenciado por Huffman_Encoder_Engine::read_input().
void read_input | ( | ifstream & | input, | |
const bool & | with_freqs = false | |||
) | [inline] |
read_input(input, with_freqs) lee el archivo de entrada input, contabiliza las frecuencias de aparición de cada símbolo y finalmente genera el árbol binario de prefijos.
[in] | input | archivo contentivo de los caracteres a codificar. |
[in] | with_freqs | si el valor es true, entonces también se genera el árbol de prefijos con las frecuencias en cada símbolo. |
bad_alloc | si no hay suficiente memoria. |
Definición en la línea 418 del archivo Huffman.H.
Hace referencia a Huffman_Encoder_Engine::generate_huffman_tree(), y Huffman_Encoder_Engine::set_end_of_stream().
void read_input | ( | char * | input, | |
const bool & | with_freqs = false | |||
) | [inline] |
read_input(input, with_freqs) lee la cadena de caracteres input, contabiliza las frecuencias de aparición de cada símbolo y finalmente genera el árbol binario de prefijos.
[in] | input | cadena de caracteres a codificar. |
[in] | with_freqs | si el valor es true, entonces también se genera el árbol de prefijos con las frecuencias en cada símbolo. |
bad_alloc | si no hay suficiente memoria. |
Definición en la línea 381 del archivo Huffman.H.
Hace referencia a Huffman_Encoder_Engine::generate_huffman_tree(), y Huffman_Encoder_Engine::set_end_of_stream().
void set_freq | ( | const string & | str, | |
const size_t & | freq | |||
) | [inline] |
set_freq(str, freq) instruye al codificador que al símbolo str se le asocia una frecuencia de aparición freq.
[in] | str | símbolo. |
[in] | freq | frecuencia del símbolo |
bad_alloc | si no hay suficiente memoria. |
Definición en la línea 333 del archivo Huffman.H.
Hace referencia a GenBinHeap::insert().