Beruflich Dokumente
Kultur Dokumente
Grado n a Grado 2
Paso 1
Paso 2
Paso 3
Paso 4
SESION 11
Estructura de Datos
Arbol de Huffman
Arboles del Monton
Grafos Dirigidos
Grafos No Dirigidos
Arbol de Huffman
Arbol de Huffman
(Algoritmo)
El algoritmo de Huffman es un algoritmo
para la construccin de cdigos de Huffman,
desarrollado por David A. Huffman en 1952
y descrito en A Method for the Construction
of Minimum-Redundancy Codes.
Permite la compresin y encriptacin de
mensajes de entrada, utilizando un mnimo
de bits para ello.
El algoritmo que crea el rbol de Huffman, que
llamado tambin algoritmo voraz
1
1
Vector de Frecuencias
H 1
O 1
L 1
P 2
A 3
NULL
H.1
1
0.1
1
L.1
1
.11
P.2
2
A.3
4
Algoritmo de Huffman
H
H 1
O
O 1
A
L 1
P 2
NUL
L
H
A 3
NULL
Algoritmo de Huffman
H
L 1
O
1
A
P 2
P
n
1
P
A 3
NULL
n1
H 1
O 1
Algoritmo de Huffman
H
L 1
O
1
P
n
1
P 2
H 1
P
A 3
O 1
A
NULL
Algoritmo de Huffman
P
n
1
P 2
H 1
P
A 3
A
NULL
O 1
n2
Algoritmo de Huffman
L
n
1
P 2
H 1
A
n
2
O 1
L 1
A
A 3
NULL
n2
Algoritmo de Huffman
L
n
1
P 2
H 1
A
n
2
O 1
L 1
A
A 3
NULL
Algoritmo de Huffman
n
3
P
n
2
4
L 1
n
1
P 2
A
n
3
A 3
n
1
P 2
2
H 1
H 1
NULL
O 1
O 1
Algoritmo de Huffman
n
4
n
2
L 1
P
n
3
A 3
A
n
4
n
1
P 2
H 1
n
2
O 1
L 1
NULL
A 3
Arbol de Huffman
O
n
3
n
4
n
1
P 2
H 1
n
2
O 1
L 1
NULL
A 3
Arbol de Huffman
n
5
n
3
NULL
n
4
n
1
P 2
H 1
n
2
O 1
L 1
A 3
Fase 3
Identificando los caminos de los nodos
Colocar 0 a la rama izquierda
Colocar 1 a la rama derecha
Indicar la longitud de cada nodo que
contiene una letra
0
Vector de Frecuencias
n
5
0
n
3
NULL
n
4
P 2
n
1
0
H 1
0
n
2
1
O 1
0
L 1
A 3
1
1
Algoritmo de Huffman
Fase 4
Crear una tabla de codificacin
a partir del rbol de codificacin.
010
011
100
101
00
11
Algoritmo de Huffman
Fase 5
Crear las secuencia codificada segn el mensaje y la tabla
de codificacin
00
11
P
00
A
11
Propiedades
Un heap tiene las siguientes tres propiedades:
Ejercicios
Ejercicio 1
Utilizando el algoritmo de Huffman, construir el rbol y la
tabla de cdigos correspondiente a cada letra de la palabra
MATEMATICAMENTE
Ejercicio 2
Dados los siguientes nodos, verificar si se puede construir un arbol tipo heap-min y un
rbol tipo heap-max
1
2
1
0
2
0
5
0
6
4
4
3
3
4
5
4
6
7
2
3