Professional Documents
Culture Documents
ESTRUCTURAS DE
DATOS II
IDES RIO III
VIRGINIA MOR LIC. EN INFORMTICA
ESTRUCTURA DE LA MATERIA
BIBLIOGRAFA:
- ESTRUCTURA DE DATOS EN JAVA JOYANES 1ED.
- SECUNDARIO: ESTRUCTURA DE DATOS EN C++ JOYANES
- INTRODUCTION TO ALGORITHMS,CORMEN ET AL.
- LIBRO DE PYTHON
PROGRAMACIN PRCTICA:
- IMPLEMENTACIN DE TEMAS VISTOS EN CLASE + PROYECTOS DE LA MATERIA
TAD
COLAS (FIFO)
PILAS (LIFO)
Estructura de datos avanzadas: rboles binarios
NIVEL: 0
NODO RAIZ
SUBRBOL IZQUIERDO
ALTURA: 4
cant. niveles
NIVEL: 3
NODO HOJA
Caractersticas
No ms de 2 subrboles por nodo Estructuras de control de informacin
B 2 C 5
Si A no es vaco entonces
D E F G inicio
ver los datos en la raz de T
preorden (subrbol izquierdo del raz de T)
preorden (subrbol derecho del raz de T)
3 4 6 7 fin
LA RAZ SE PROCESA ENTRE LOS SUBRBOLES: PRIMERO EL IZQUIERDO, VISITA A RAIZ, LUEGO EL DERECHO
RECORRIDOS - TREE WALKS
A
Recorrido: D E B F G C A POSTORDEN
7
Si A no esta vaco entonces
B C inicio
postorden (subrbol izquierdo del raz de A)
3 6 postorden (subrbol derecho del raz de A)
D E F G Visualizar los datos del raz de A
4 5 Fin
1 2
21 5
33 6
13 1
17 18 22 4
25 2
15 40
ABB BSQUEDA - SEARCH
Paso
Paso 21
El 25 es mayor o
menor que el 21? 3 21 BUSCAR 25
1
33 13 33
13
Encontrado
40 10 18 40
10 18 25 25
Paso
2 21
El 25 es mayor
o menor que el
13 33 33?
10 18 40
25
ABB AGREGAR - INSERT
REGLAS
El valor a insertar no existe en el rbol.
Dado un nodo z:
z.key = v ; z.left = nil; z.right = nil
(El nuevo nodo ser un Nodo Hoja)
PROCEDIMIENTO
Se busca el padre que corresponde (while)
Agregar nodo z segn sea < o > (12 13)
ABB AGREGAR - INSERT
Paso 21 El 26 es mayor o El 26 es mayor
1 menor que el 21? 21 o menor que el INSERTAR 26
Paso 33?
13 33 2
13 33 Paso
4 21
10 40
18 25 18 40
10 25 33
13
Paso
3 21
10 18 40
25
13 33
Agregar el nodo
26
40 Se encontr el Nodo
10 18 25 Padre
ABB MINIMO/MAXIMO
GRACIAS AL ORDEN, ABB ASEGURA QUE SIGUIENDO LOS PUNTEROS DE HIJOS
(IZQUIERDOS/DERECHOS) DESDE NODO RAIZ HASTA ENCONTRAR NIL (NODO HOJA) SE OBTIENE
EL MNIMO/MXIMO DEL RBOL
REEMPLAZA UN SUBRBOL
COMO HIJO DE SU PADRE
CON OTRO SUBRBOL.
d): CASOS DOS HIJOS: SU HIJO DERECHO r NO ES EL SUCESOR (y) DE z, SINO QUE y SE ENCUENTRA DENTRO DEL SUBRBOL DE
r, POR ESO SE REEMPLAZA y POR SU HIJO, E y PASA A SER PADRE DEL SUBRBOL r, YA QUE ES EL SUCESOR DE z ELIMINADO
Eficiencia de las operaciones vistas
Buscar, minimo, maximo, predecesor, sucesor, insertar y borrar tienen un costo proporcional a la
altura del arbol O(h)
Mientras mas alto mas nodos hay que visitar para encontrar el que buscamos
Si el rbol esta balanceado (completo) estas operaciones son mas eficientes (log n, n=nodos)
Notar la diferencia
si se busca el nodo 6
NO SOLO IMPORTA IMPLEMENTAR UNA SOLUCIN AL PROBLEMA DADO (ALGORITMO) SINO QUE HAY QUE
TENER EN CUENTA QUE DEBE SER EL MS EFICIENTE.
Prctico rboles
Disear e Implementar el TAD rbol con las variables de clase y mtodos necesarios
Disear un TAD Arbol_binario que es mas especifico que rbol (es una subclase)
Implementar una clase rbol_binario que herede de la clase rbol
Disear un TAD rbol_Binario_Busqueda que es mas especfico que rbol y que rbol binario
(es una subclase)
Implementar una clase ABB que herede de la clase rbol_binario
Mtodos deseados: insertar, borrar, buscar, imprimir (= recorrer inorder y print como lista)
Prctico ABB
Crear una clase de python que herede de rbol binario para crear rbol binario de bsqueda
(ABB)
Implementar el TAD diccionario con ABB
Operaciones de diccionario:
Constructores: creacin del diccionario vaco, agregado de un elemento a un diccionario,
Funciones/mtodos: consulta si el diccionario es vaco, bsqueda de un elemento , borrado de
un elemento