Professional Documents
Culture Documents
y ALGORITMOS
Licenciatura en Ciencias de la
Computacin
ARBOL
Estructuras de Datos y
Algoritmos
ARBOL
Un RBOL es una coleccin o conjunto de nodos. La
coleccin puede:
1 - Estar vaca
2 - Si no est vaca, consiste de un nodo distinguido r,
conocido como raz, y cero o ms (sub)rboles A1,
A2,......,Ak, cada uno de los cuales tiene su raz conectada a
r por medio de una arista (o rama) dirigida.
A1 A2 A3 Ak
Estructuras de Datos y
Algoritmos
ARBOL
La raz de cada subrbol es un hijo o descendiente directo de r, y r es el padre o antecesor directo de
cada raz de los subrboles.
Camino de un nodo ni a otro nk: secuencia de nodos n1, n2, ...., nk , tal que ni es el padre de ni+1 para
1<=i<k. En un rbol existe solamente un camino desde la raz a cada nodo.
Si hay un camino entre los nodos n1 y n2, entonces n1 es antecesor de n2 y n2 es descendiente de n1.
Longitud de camino de un nodo ni a otro nk: Nmero de aristas que forman el camino, o nmero de
nodos menos 1 que forman la secuencia. Existe un camino de longitud cero desde cada nodo a s mismo.
Nivel de un nodo: si el nodo x est en el nivel i, entonces sus descendientes directos estn en el nivel i+1.
La raz de un rbol, se define como localizada en el nivel 1.
Profundidad o Altura del rbol: mximo de los niveles de todos los nodos del rbol.
rbol Ordenado: rbol en el que las ramas de cada nodo estn ordenadas.
Estructuras de Datos y
Algoritmos
rbol Binario
Generacin de Cdigos de
Huffman
Caracter A B C D E F G H I
Frecuencia 15 6 7 12 25 4 6 1 15
Estructuras de Datos y
Algoritmos
Generacin de Cdigos de
Huffman
- Paso 1: Generar una lista de caracteres (rboles
binarios), ordenada en forma creciente por sus frecuencias
de ocurrencia.
Cab
H1 F 4 B6 G6 C7 D 12 A 15 I 15 E 25
Estructuras de Datos y
Algoritmos
Generacin de Cdigos de
- Paso 2: Generar Huffman
repetidamente rboles binarios a partir de
aquellos con frecuencias menores, e insertarlos nuevamente en la
lista ordenada. La frecuencia asociada a la raz de cada nuevo rbol
es la suma de las frecuencias de sus subrboles.
Cab
H 5 6
F B G6 C 7
D 12 A 15
I 15
E 25
1 4
H F
Estructuras de Datos y
Algoritmos
Generacin de Cdigos de
Huffman
Cab
HF 11
7 B
G6 C D 12 A 15
I 15
E 25
H 5 6
F B
1 4
H F
Generacin de Cdigos de
Huffman
Cab
IHFBDEGCA 91
IHFBD 38 EGCA 53
HF
B 11 D 12 GC 13 A 15
H 5
F B6 G6 C7
H1 F4
Estructuras de Datos y
Algoritmos
0 1 C 7 1101
0 1
HF 11 D 12 GC 13 A 15 D 12 011
B
0 1 0 1 A 15 111
H
F 5 B 6 G 6 C 7 I 15 00
0 1 E 25 10
H 1 F 4
Estructuras de Datos y
Algoritmos
EMISOR
RECEPTOR
Estructuras de Datos y
Algoritmos
T.A.D. rbol Binario de Bsqueda
Especificacin (1)
Un rbol Binario de Bsqueda ABB- es un rbol Binario
en el que:
Buscar Buscar(X,A) Localiza el nodo con clave X en A,X Reporta los datos asociados
el rbol A con X, si X A; Error
en caso contrario
Estructuras de Datos y
Algoritmos
70
Buscar(A,X
)
47 92
35 68 83 100
79
Si (sub)rbol vaco
entonces Error- Elemento Inexistente.
Si Clave [X] =Clave [R] (R:nodo raz de
(sub)rbol)
entonces xito- Elemento existente
Si Clave [X] < Clave [R] (R:nodo raz de
(sub)rbol)
entonces Buscar ((sub)rbol
izquierdo( R), X)
Si Clave[X] >Clave [R] (R: nodo raz de
(sub)rbol)
T.A.D. ABB Algoritmos
Estructuras de Datos y
4 9
7 2
100 Si (sub)rbol vaco
3 6 8
5 8 3
entonces xito- X nueva hoja
Si Clave [X] = Clave [R] (R:nodo raz de
7 (sub)rbol)
9 entonces Error- Elemento ya existente
Insertar (A,X=91) Si Clave [X] < Clave [R] (R:nodo raz de
(sub)rbol)
entonces Insertar((sub)rbol
izquierdo( R),X)
70 Si Clave[X] >Clave [R] (R: nodo raz de
(sub)rbol)
9 entonces Insertar ((sub)rbol
4
7 2 derecho(R), X)
100
3 6 8
5 8 3
7 91
T.A.D. ABB Estructuras de Datos y
Algoritmos
Construccin de Operaciones Abstractas
(3)
70
92
47
35 68 83 100
79
70
Suprimir (A ,
X=79)
92
47
35 68 83 100
T.A.D. ABB Estructuras de Datos y
Algoritmos
Construccin de Operaciones Abstractas
(4)
70
92
47
35 68 83 100
79
70
Suprimir (A ,
X=83)
92
47
35 68 79 100
T.A.D. ABB Estructuras de Datos y
Algoritmos
Construccin de Operaciones Abstractas
(5)
70 Si (sub)rbol vaco
entonces Error -elemento inexistente
sino
92 Si Clave [X] = Clave [R] (R: nodo raz de (sub)rbol)
47 entonces
Si Grado(R) = 0
entonces eliminar nodo R
35 68 83 Si Grado(R) = 1
100
entonces Padre(R) Hijo(R)
Si Grado(R) = 2
79 entonces R Mximo ((sub)rbol-izquierdo
(R))
Eliminar (Mximo((sub)rbol-
izquierdo(R)))
Suprimir (A , 68
X=70)
47 92
35 83 100
79
T.A.D. ABB Algoritmos
Estructuras de Datos y
Recorridos
R
A B
Preorden Postorden
Si Arbol no vaco Si Arbol no vaco
Entonces Entonces
Procesar nodo R Procesar A en
Procesar A en Postorden
Preorden Procesar B en
Inorden Postorden
Procesar B en
Si Arbol no vaco Procesar nodo R
Preorden
Entonces
Procesar A en
Inorden
Procesar nodo R
Estructuras de Datos y
Algoritmos
ENTRADA SALIDA
al 3
C 1
de 1, 4
1 . `El editor de editor 1
lenguaje C entorno 2,
2 . presenta un entorno 3
3 . similar al entorno el 1
4 . de lenguaje Pascal` Lenguaje 1, 4
Pascal 4
presenta
2
similar 3
un 2
Estructuras de Datos y
Algoritmos
ABB Completo
70
47 92
35 68 83 95
27 42 50 69 79 90 93 99
N 1 3 7 15
N = 2C 1 N + 1= 2C
C 1 2 3 4 log 2 (N+1)= C (log 2
2)
log 2 (N+1)= C
Estructuras de Datos y
Algoritmos
70 Insertar(A,X=47 70
)
92 47 92
T.A.D. Arbol Balanceado Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(2)
Insercin en un rbol Balanceado
70
70
Insertar(A,X=35 o
68)
47 92
47 92
35 68
T.A.D. Arbol Balanceado Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(3)
Insercin en un rbol Balanceado
70 70
Insertar(A,X=27 o 42 o 50 o
47 92 69) 47 92
35 68 35 68
27 42 50 69
REBALANCEAR !!
T.A.D. Arbol Balanceado
Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(4)
A 70
B 47 92
R
E
B C 35 68
A A
L S
27 42
A O
N
C 1
B
E 47
O A
3 7
5 0
2 42 6 9
7 8 2
T.A.D. Arbol Balanceado
Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(5)
70
C
A 47 92
R
E B
B C 35 68
A A
L S 69
50
A O
N
C 2
E
B 68
O
A C
4 7
7 0
3 5 6 9
5 0 9 2
Estructuras de Datos y
Algoritmos
rbol B
rbol B, rbol multicamino de orden n:
rbol B de rden 2
25
10 20 30 40
2 8 9 15 17 22 24 27 28 33 35 46 48
20 30
40 50 60 70
80 90 100
Padre : Elementos [ i /
2 ]
Elementos [ i Hijo Izquierdo : Elementos [ i *
Elementos ] 2]
Hijo Derecho : Elementos [ i * 2 +
10 20 30 40 50 60 70 80 90 100 .. 1]
0 1 2 3 4 5 6 7 8 9 10
Montculo Binario en su
almacenamiento
T.A.D.Montculo Binario Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(1)
40 50 60 70 10 20 30 40 50 60 70 80 90 100 35
0 1 2 3 4 5 6 7 8 9 10
80 90 100 11
35
b) Propiedad
de 10
Orden
20 30
Elementos
40 35 60 70 10 20 30 40 35 60 70 80 90 100 50
0 1 2 3 4 5 6 7 8 9 10
80 90 100 11
50
T.A.D.Montculo Binario Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(3)
Eliminar_Mnimo (M, X)
20 30 50
a) Propiedad de 20 30
40 35 60 70
Estructura
40 35 60 70
80 90 100
50
80 90 100
Elementos
20 30 40 35 60 70 80 90 100 50 .. Elementos
0 1 2 3 4 5 6 7 8 9 10 50 20 30 40 35 60 70 80 90 100 ..
11
0 1 2 3 4 5 6 7 8 9 10
11
T.A.D.Montculo Binario Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(3)
Eliminar_Mnimo (M, X)
b) Propiedad de
Orden
20 20
50 30 35 30
40 35 60 70 40 50 60 70
80 90 10 80 90 10
0 0
Elementos Elementos
20 50 30 40 35 60 70 80 90 100 .. 20 35 30 40 50 60 70 80 90 100 ..
0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 11