Por
Saiyine
el 2005-03-10 03:19:00 - Secciones: ARTICULO ALGORITMOS PROGRAMACION - Enlace permanente: 365
Los códigos de Huffman son posiblemente la variante más
conocida de los compresores estadísticos, que aprovechan las
características estadísticas de los datos de entrada
asignando códigos más cortos a los datos que mas se
repiten, logrando así un efecto compresor.
Para lograrlo, el compresor debe recorrer una vez el vector con la
información entrante para crear una tabla con la frecuencia de
cada carácter, y luego otra vez para traducir la fuente en los
códigos adecuados. Esta doble pasada no siempre es posible, y aquí es donde
entran las variantes adaptativas, que son capaces de generar la
compresión en una sola pasada, al ir modificando los códigos
de salida conforme van llegando nuevos códigos a la entrada.
El
algoritmo
Como ya mencioné anteriormente, la compresión Huffman
adaptativa se diferencia de la normal en que los datos estadísticos
se generan en la misma pasada que se envían los códigos
de salida, y esto tiene un problema evidente: ¿cómo se
envía un dato que aún no ha sido registrado en la tabla
de símbolos? ¡Reconstruir la tabla con cada carácter
nuevo requeriría muchísimo tiempo de CPU!
Por ello, lo que se hace es modificar el árbol binario del
algoritmo Huffman añadiendo un valor especial llamado NYT, not
yet transmitted, que servirá como marcador de nuevo carácter,
es decir, si tenemos la entrada “arañar”,
la salida seria “NYT a NYT r CODIGO(a) NYT ñ
CODIGO(a) CODIGO(r)”.
Otro problema que surge es el de la optimalidad de los códigos,
ya que si simplemente vamos añadiendo caracteres al árbol
estadístico conforme aparecen en la entrada, se perderían
las ventajas de la compresión Huffman. Por ello, cada vez que
se lee un carácter hay que actualizar el árbol, que
pasa a ser bastante mas complejo que el algoritmo no adaptativo, de
una manera determinada, dependiendo de si es un nuevo carácter
o si ya estaba en el árbol.

Fig.
1. Árbol de ejemplo, conteniendo la palabra “abra”
Los nuevos elementos que podemos advertir en el árbol binario
del algoritmo adaptativo frente al clásico son la presencia
del código NYT, la numeración de los nodos y un
contador de cada carácter. Con este contador llevamos la
cuenta de cuantas veces ha aparecido el valor, y es lo que definirá
en que posición del árbol pondremos al carácter
en caso de reorganización, mientras que la numeración
nos servirá para decidir que nodos deben intercambiar su
posición.
Un
ejemplo paso a paso
Veamos con un ejemplo como funciona el algoritmo, usando la palabra
“abracadabra”.

Fig.
2. Árbol vacío
Comenzamos con un árbol vacío, al que le llega el
primer carácter, “a”.

Fig.
3. Árbol para “a”
Con la llegada del primer dato, el algoritmo envía el dato tal
cual, “a” y después genera los primeros nodos del
árbol, es decir, el nodo para el NYT, con el contador a cero,
y el del propio dato, con el contador a uno, y el nodo padre, el raíz
en este caso, con la suma de los contadores de sus hijos.

Fig.
4. Árbol para “ab”
Tenemos un nuevo dato, así que enviamos el NYT para
comunicárselo al destino, seguido del propio dato, por lo que
el mensaje enviado completo por el momento es “a 0b”.
Este mensaje realmente se compone de los ocho bits del símbolo
“a”, seguido del bit 0 y de los ocho de “b”,
por lo que es importante que tanto compresor como receptor estén
de acuerdo en el tamaño del dato base, que en el programa que
nos ocupa es de ocho bits.
Una vez enviados los nuevos códigos, se reestructura el árbol
añadiendo el nuevo carácter “b” como hijo
derecho del NYT, y creando un nuevo NYT como hijo izquierdo, y
actualizando los contadores en cascada hacia la raíz,
efectivamente creando un árbol balanceado.

Fig. 5a. Árbol para “abr” no actualizado
Con el nuevo carácter “r” llegamos a un punto
crucial del algoritmo: la actualización del árbol.
Primero, se manda el NYT y el dato r, con lo que el mensaje
comprimido es ahora “a 0b 00r” (recordemos que siempre se
mandan los NYT de antes de meter el nuevo carácter en el
árbol). Lo introducimos en el lugar del NYT y llegamos a una
posición en la que no se cumple la posición de balanceo
del árbol, ya que el nodo 49 tiene el valor 2, suma de los
valores de sus dos hijos, mientras que su hermano 50 tiene el valor
1, ya que el carácter “a” solo ha aparecido una
vez hasta ahora. Por lo tanto, los intercambiamos, en un ajuste de
balanceo que en este algoritmo es llamado simplemente proceso de
ajuste del árbol.

Fig.
5b. Árbol para “abr” actualizado
Otro carácter “a”, que como ya está en el
árbol es enviado comprimido, con lo que tenemos “a 0b
00r 0”.

Fig.
6. Árbol para “abra”
Ahora es el turno del dato “c”, que como no está
en el árbol, mandamos el NYT y el dato en claro: “a 0b
00r 0 100c”. Después lo añadimos al árbol.

Fig. 7a. Árbol para “abrac” no actualizado
De nuevo el árbol necesita ser actualizado, ya que los nodos 47 y 48 han dejado de cumplir la condición de balanceo.

Fig.
7b. Árbol para “abrac” actualizado
Otra “a”, con lo que el mensaje completo es ahora “a
0b 00r 0 100c 0”.

Fig.
8. Árbol para “abraca”
El dato “d” es nuevo, así que lo enviamos (“
a 0b 00r 0 100c 0 1100d ”)y expandimos el nodo de NYT para
acomodarlo. Además, va a desequilibrar el árbol, que
necesitará un ajuste.

Fig.
9a. Árbol para “abracad” antes de actualizar

Fig.
9b. Árbol para “abracad” balanceado
La tercera “a”, con lo que el mensaje comprimido es ahora
“a 0b 00r 0 100c 0 1100d 0”.

Fig.
10. Árbol para “abracada”
El siguiente carácter “b”, aunque ya está
en el árbol y podría parecer que simplemente bastaría
con aumentar su contador y enviar su código, en realidad va a
generar un proceso interesante que podría cambiar el árbol
casi por completo: una actualización en cascada.

Fig.
11a. Árbol para “abracadab” sin actualizar
Primero, los nodos 45 y 46 deben ser intercambiados, ya al aumentar
el contador de b, su nodo tiene mas “peso” que su hermano
derecho.

Fig.
11b. Árbol para “abracadab” actualizándose
Intercambiados los nodos, aumentamos el valor de “b” y de
los padres hasta la raíz, verificando en cada nodo si es
necesaria una nueva actualización, aunque en este ejemplo no
se da el caso.

Fig. 11c. Árbol para “abracadab” actualizado
Los dos caracteres que faltan, “r” y “a”, no
tienen mucha historia, simplemente enviamos el código y
actualizamos los contadores correspondientes, con lo que el código
final es “a 0b 00r 0 100c 0 1100d 0 110 110 0”, es decir,
60 bits, frente a los 88 que harían falta para mandar el
mensaje sin comprimir.

Fig.
12. Árbol para “abracadabr”

Fig.
13. Árbol para “abracadabra”
La
descompresión
Ahora veamos un ejemplo de descompresión. Tenemos la cadena “a
0b 00r 0 100c 0 1100d 0 110 110 0” (de nuevo, imaginemos que en
vez de los caracteres tenemos grupos de 8 bits con la representación
ascii de dichos caracteres). Leemos los primeros ocho bits, ya que
forzosamente el primer carácter debe estar sin codificar, con
lo que ya tenemos la “a”, y la introducimos en el árbol.
El siguiente dato, o bien es un uno si es otra vez la “a”,
o es un cero para indicar el valor NYT. En nuestro caso, es un cero,
así que lo leemos y los siguientes ocho bits, con lo que ya
tenemos “ab”.
Ahora el descompresor tendría en su memoria un árbol
análogo al de la figura 4, por lo que al leer un cero sabemos
que debemos leer al menos un bit más. Efectivamente, nos llega
otro cero, con lo que tenemos un NYT. Leemos otros ocho bits y ya
tenemos “abr”. Actualizamos el árbol, igual que
hacíamos en la compresión, y leemos un cero, lo que nos
indica que tenemos otra “a”.
Leemos un bit y tenemos un uno, que no es ningún código
conocido, leemos otro y tenemos uno-cero, que sigue siendo
desconocido. Volvemos a leer y tenemos uno-cero-cero, que en la
disposición actual del árbol ( fig 6 ) es un NYT.
Leemos ocho bits más, tenemos “abrac”. Sacamos un
cero de la cadena, y como sabemos por el árbol que es una “a”,
tenemos “abraca”.
Se lee bit a bit hasta que tenemos una combinación con
significado, y en este caso, se trata de nuevo de un NYT, acompañado
de los ocho bits de la “d”, con lo que el código
hasta ahora es “abracad”. Hasta el final, tenemos
caracteres sueltos que completan el mensaje, que es, claro esta,
“abracadabra”.
Otras entradas de la web que podrian interesarte:

21

62

327
Javi (0000-00-00 00:00:00)
Quisiera ver si es posible obtener el codigo de Huffman Adaptativo escrito en un lenguajes de alto nivel no importa cual sea. Que es estrictamente necesario obtenerlo para un trabajo que tengo que realizar. El algoritmo ea un poco complicado de entender pero mucho mas de implementar. quisiera que porfavor me puedan ayudar Gracias... Javier Prieto.. De Maracaibo Venezuela...

329
Saiyine (0000-00-00 00:00:00)
Bien, veamos, aquí tienes unos cuantos enlaces, en
Java, en C [
1] y [
2]; y en
C#.

531
chema (2006-09-04 11:26:27)
Buenas a todos, necesito el codigo de huffman en pascal, y que este en castellano si es posible. Contestenme si son tan amables a la direccion de correo siguiente: jmvm17@hotmail.com. Gracias-

580
elpez (2006-10-01 09:41:19)
<%
response.write "hola"
%>

581
elpez (2006-10-01 09:42:06)
<?
echo "hola";
echo "hola";
echo "hola";
echo "hola";
echo "hola";echo "hola";echo "hola";echo "hola";echo "hola";
?>

600
Anonimo (2006-10-09 10:21:46)
hola
Me gustaria saber como puedo hacer el codigo de un arbol binario balanceado, para eliminar nodos e imprimirlos.
Si es posible que me manden el codigo se los adgradeceria.
Gracias

725
Anonimo (2006-11-07 07:34:32)
00101101 00101110 00100000 00101110 00101101 00100000 00101101 00101101 00100000 00101110 00101101 00100000 00101110 00101110 00101110 00100000 00101101 00100000 00101110 00100000 00101110 00101101 00101110 00101101 00101110 00101101 00100000 00101110 00101110 00101110 00101110 00100000 00101101 00100000 00101101 00101101 00100000

727
Anonimo (2006-11-08 02:52:04)
00101101 00101110 00100000 00101110 00101101 00100000 00101101 00101101 00100000 00101110 00101101 00100000 00101110 00101110 00101110 00100000 00101101 00100000 00101110 00100000 00101110 00101101 00101110 00101101 00101110 00101101 00100000 00101110 00101110 00101110 00101110 00100000 00101101 00100000 00101101 00101101 00100000

737
Anonimo (2006-11-21 06:45:52)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

738
Anonimo (2006-11-22 07:25:05)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

741
Anonimo (2006-11-23 11:46:24)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000
saben lo qe significa.???

748
Anonimo (2006-11-25 08:20:43)
No lo se, ¿puedes decirmelo?

755
lucas (2006-11-27 01:05:19)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000
caverna!!!!

756
Anonimo (2006-11-28 06:37:47)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

772
Sherlock (2006-12-06 05:58:46)
Porque CAverna ... como llegaste a esa conclucion?

774
katy (2006-12-07 09:24:17)
hola Quisiera ver si es posible obtener el codigo de Huffman Adaptativo escrito en un java Que es estrictamente necesario obtenerlo para un trabajo que tengo que realizar. El algoritmo ea un poco complicado de entender pero mucho mas de implementar. quisiera que porfavor me puedan ayudar Gracias...katy

781
Anonimo (2006-12-10 01:12:47)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

786
Anonimo (2006-12-14 08:50:38)
no tengo ni idea de como habeis llegado a la solución de caverna, pero me ha servido para ponerlo en el tool-chile.com en el nivel 8

791
Anonimo (2006-12-16 03:22:42)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 0010001

796
Anonimo (2006-12-17 05:05:11)
como descifraron caverna!? alguien ponga una explicacion para ilustrarnos

799

807
miguel (2006-12-25 09:38:49)
PORFAVOOOOOORRRRRRRR.. que alguien nos explique como llegaron a "caverna".. me sirvió para el "tercerojo" de tool-chile.com, pero me frustra un pococ no saber como consiguieron la respuesta...
porfaaaaa jajajaja...
Saludos!

825
Paloma Merino (2007-01-04 04:41:44)
Hola, no sé si tiene algo ke ver, pero necesito decodificar esto
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000
pero no sé como
=S
Alguna ayuda?

837
yo (2007-01-11 08:12:43)
pueden mandarme el algoritmo de huffman en python

838
mi nombre es romance (2007-01-11 08:15:25)

por favor como puede codificar el algoritmo de huffman en pyrhon? alguien ayudeme

839

860
dy (2007-01-17 10:26:17)

Quisiera poder terner acceso al codigo de fuente de hufman

971
Anonimo (2007-02-19 04:27:32)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

973
Anonimo (2007-02-21 01:12:09)
Como lo decodificaron? quisiera saber porq caverna?

984
Anonimo (2007-02-25 07:07:11)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

996
Anonimo (2007-02-28 02:25:56)
y el nivel 8? alguien sabe la solucion? parece un ojo...

997
Anonimo (2007-02-28 02:26:54)
Alguien sabria decir porq el nievel 4 era arcoiris?

1055
Carlos (2007-04-04 09:38:09)
escribe (r) en msn (=

1071
Anonimo (2007-04-11 09:20:57)
porq nadie puede decir porq demonios la solucion es caverna

1072
Anonimo (2007-04-12 07:13:15)
Buenas gente,
Veo que estamos en el mismo tema.
He encontrado codigo del algoritmo de Huffman en vb.net pero creo q no está bien del todo. Me gustaria saber si es posible conseguirlo o en C#.NET si no hay más remedio.
Un saludo gracias.
Urgente

1093
Anonimo (2007-04-19 07:49:45)
no estaría mal que te currases tu un poco la programación ;)

1094
Saiyine (2007-04-19 08:32:57)
Gracias a las típicas injusticias de la universidad, de entre muchas y muy graves, quiso la diosa fortuna que, por una vez, esta fuera a mi favor, y el profesor creyó que yo era de los que deben aprobar por decreto y actuó en consecuencia.
Grave error, yo soy de la lista B, y para cuando se dió cuenta ya estaban las actas firmadas.

1125
Anonimo (2007-04-24 05:56:29)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

1126
luka (2007-04-25 05:58:46)
hi;
un favor si me podrian enviar un programa en java sobre el balanceo de un arbol binario y el borrado de un nodo garx

1133
Saiyine (2007-04-25 01:52:07)
Google al rescate: "
java arbol binario" devuelve 28.000 resultados, de los que, en un vistazo rápido, yo empezaria por revisar
este y
este.

1194
realidad (2007-05-16 02:11:50)
quiero que me manden el codigo en java de huffman, para comprimir archivos.

1205
Sixtolo (2007-05-21 05:05:14)
fuertes lokoooooos iste

1232
Anonimo (2007-05-31 11:19:32)
sixtolo dice xDD, casi me lo creo
enga pollo ;)

1305
Anonimo (2007-06-20 03:10:43)
deseo decifrar algo pero no se como

1395
ariel (2007-08-05 12:41:47)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000
q alguien me tradusca eso porfa...lo agradeceria

1426
Anonimo (2007-08-17 11:18:56)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

1457
Anonimo (2007-08-26 06:35:30)
POR QUE ES CAVERNA??
POR QUE ES CAVERNA??
POR QUE ES CAVERNA??
POR QUE ES CAVERNA??
POR QUE ES CAVERNA??

1463
Anonimo (2007-08-30 12:14:36)
ES CAVERNA PORQUE SOY FLAYTE Y LO DIGO.

1485
Anonimo (2007-09-16 09:56:57)
necesito arbol de humman en haskell

1496
JORGE (2007-09-20 08:19:47)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000
porqueeso es caverna, ya converti el binario y no di como llegaron a caverna, alguien me podria decir?????

1511
Anonimo (2007-09-27 05:22:41)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

1548

1598
Leticia (2007-11-25 01:38:19)
Hola Necesito ayuda urgentemete antes de las doce
Nenecesito el algoritmo de arbol Huffman en haskell
podeis ayudarme porfavor?

1599
ANAID (2007-11-26 04:36:04)
PORFAVOR AYUDENME NECESITO EL CODIGO DEL ARBOL DE HUFFMAN EN HASKEEL ES MI UNA DE MIS CALIFICACIONES FINALES PORFAS AYUDENME

1629
Anonimo (2007-12-17 07:23:05)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

1633
pol (2007-12-18 01:03:03)
que tal gente?
tengo un problema el cual es: tomo un texto de pantalla (ingresado por el usuario), creo un arbol de huffman con su tabla de frecuencias y lo codifico ahora mi pregunta es: que tengo que guardar en un archivo en el disco para despues abrirlo y poder decodificar lo que esta ahi? tengo que guardar la tabla de frecuencias? que no comprennndo! gracias_

1634
Saiyine (2007-12-19 04:48:50)
Uhm hace muchisimo tiempo que no me dedico a esas cosas, pero juraria que debes guardar una tabla con las equivalencias entre cada caracter y su codigo, y luego la conversion del texto a cada codigo.

1636
Anonimo (2007-12-20 02:16:19)
00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000
En binario eso significa "-.-. .- ...- . .-. -. .-"
Y esto en codigo morse es "caverna"

1928

1929
Anonimo (2008-02-28 09:51:15)
joto el que me lea!

1979
Anonimo (2008-03-13 10:44:43)
ahi dios dios no saben el codigo mira primero tienen que poner binario despue de eso les aparesera una frase que es caberna a ver si usamoos la cabesiita pendejitos.

2249
Bixino (2008-05-16 09:01:02)
Hola a todos!!
Alguien puede ayudarme a encontrar el codigo de Huffman para Shell/Linux??
Gracias!!!

2835

2850
Belen (2008-10-18 03:50:29)
hola
quisiera saber algo sobre e ordenamiento del arbol de huffman
cuando ordeno
al lado izquierdo pongo como 0
y derecho como 1
pero es importanteel orden que le doy a mis variables
es decir siempre al izquierdo la variabe y al lado el valor
y cuand teno dos de distinto valor cual coloco a cada lado

2913
MaNu3liTa (2008-11-11 07:15:15)
HOLA!!! alguien me puede mandar el codigo de huffman en java o en c#, GRACIAS!!!

3004
Anonimo (2008-12-10 06:56:29)
ya intentaron con copiar y pegar manga de ineptos.

3434

3463
GERARD (2009-06-12 11:57:16)
Genial! El artículo me ha ayudado a terminar de entender el método de ordenación para el Huffman Adaptivo, estoy con una implementación y tenia un poco de lío con la ordenación del arbol.
Salut.

3464
Saiyine (2009-06-12 01:04:21)
De nada.
Gracias a ti por ser el primero en poner un comentario minimamente relacionado con el contenido del post.

3658
Anonimo (2009-08-22 09:47:16)
q significa esto 00101101 00101110 00101101 00101110 00100000
00101110 00101101 00100000 00101110 00101110
00101110 00101101 00100000 00101110 00100000
00101110 00101101 00101110 00100000 00101101
00101110 00100000 00101110 00101101 00100000

3896
Gladiator (2009-10-24 10:14:54)
alguien me puede enviar el algoritmo para comprimir y descomprimir de huffman adaptativo en c#....
es de suma importancia....
por favor...

3910
Anonimo (2009-10-27 04:08:08)
yjhdtyjytdjy

3919
Anonimo (2009-10-28 05:08:47)
me hace falta el codigo de huffman en java

3920
Anonimo (2009-10-28 05:10:24)
hola
me hace falkta el codigo de huffman en java

3998
Anonimo (2009-11-20 09:53:57)
holaaaaaaaaaa
estoy un poco desesperado... necesito leer un archivo y de este sacar la tabla de frecuencia de los caracteres, el arbol balanceado y la tabla de equivalencia de la compresion de huffman...
si pueden ayudarme, nisiquiera e podido sacar la tabla de de frecuencia de los caracteres
mi correo es cucu_xcv@hotmail.com

3999

4221
MAC (2010-02-17 03:23:39)
Necesito el codigo para Basic U_U que nadie lo tiene?.... lo que necesito es un texto pasarlo a arbol de Huffman U_U
Si alguien pudiera darme una pista aunque sea, no importa que no me dieran el codigo... es que puedo contar las letras pero hasta ahi el codigo es bien facil para hacer eso
If KeyAscii = 53 Then
x5 = x5 + 1
w = "x5"
Esto es para el caso de que alguien teclee un 5
pero asi hice muchas lineas de codigo y es muy largo y enfadoso.
Si pueden ayudarme me encantaria...CORREO n.o.c.pancho@gmail.com

4222
Mario (2010-02-17 06:15:44)
Hola, muchas gracias por el post, me ha sido muy util para comprender bien el algoritmo adaptativo de huffman, pero estoy buscando codigo en java ya que lo necesito para un proyecto. En enlace que has dado lleva a codigo java del algoritmo de huffman pero no es el adaptativo sino el semiadaptativo, que lee primero el fichero y construye el arbol despues.
Podrias indicarme algun link a codigo java pero del algoritmo adaptativo?
Muchas gracias de nuevo!!

4224
Saiyine (2010-02-17 11:39:36)
Hola Mario, prueba con
este.
Es de un buscador de codigo fuente llamado koders.com, igual hay algo interesante por ahí.

4597
