Estructuras de Datos. Clase 20 Árboles de búsqueda. Dr. Sergio A. Gómez.
|
|
- José Ángel Aguilera Salinas
- hace 5 años
- Vistas:
Transcripción
1 Clase 20 Árboles de búsqueda Bahía Blanca, Argentina Motivaciones El árbol binario de búsqueda permite implementar conjuntos mapeos con un tiempo de operaciones buscar, insertar eliminar con orden logarítmico en la cantidad de elementos en promedio. En el peor caso las operaciones tienen orden lineal en la cantidad de elementos (cuando las inserciones se realiaron en forma ascendente o descendente en cuo caso el árbol degenera en una lista). Ha tres estructuras alternativas que garantian tiempo de acceso de orden logarítmico en la cantidad de elementos. Árboles balanceados: AVL (sí los veremos) Árbol 2 3 (sí los veremos) Árbol rojo negro (no los daremos) Estructuras de datos 2. Notas de Clase. Sergio A. Góme.. (c)
2 Árboles AVL Agregaremos una corrección al árbol binario de búsqueda para mantener una altura del árbol proporcional al logaritmo de la cantidad de nodos del árbol. Recordemos que el tiempo de búsqueda, inserción borrado en un árbol binario de búsqueda es lineal en la altura del árbol. Entonces, si n=cantidad de elementos de un arbol T, tendríamos así que T(n) = O(log 2 (n)). Propiedad del balance de la altura: Para cada nodo interno v de T, las alturas de los hijos difieren en a lo sumo 1. Cualquier árbol binario de búsqueda que satisface esta propiedad se dice "árbol AVL" (por Adel'son Vel'skii Landis). Estructuras de datos 3 Árboles AVL: Ejemplo Propiedad del balance de la altura: Para cada nodo interno v de T, las alturas de los hijos difieren en a lo sumo 1. Ejemplo: Los * corresponden a nodos nulos (con altura 0 de acuerdo a GT) * * * * 0 * 0 * 0 * 0 * 0 * Estructuras de datos 4. Notas de Clase. Sergio A. Góme.. (c)
3 Comentarios Desde mi punto de vista ( el de Mark Allen Weiss) es más elegante decir que los nodos nulos tienen altura 1; así, las hojas tienen altura 0. Sin embargo, para seguir a Goodrich & Tamassia diremos que los nodos nulos tienen altura 0 las hojas 1 Como un AVL es un árbol binario de búsqueda, la operación de búsqueda no sufre alteraciones. La únicas operaciones a modificar son la de inserción eliminación, las cuales deben verificar que se cumpla la propiedad de balance al finaliar la operación. Luego de cada modificación en un nodo, rebalancearán los hijos de dicho nodo en O(1) por medio de las llamadas rotaciones. Las modificaciones se hacen desde la hoja donde se insertó el nodo hacia la raí siguiendo el camino de llamadas recursivas. Estructuras de datos 5 Rotaciones Son cuatro correspondientes a las cuatro combinaciones para la inserción de una clave: 1) iquierda iquierda: rotación simple iquierda 2) iquierda derecha: Rotación doble iquierda 3) derecha derecha: Rotación simple derecha 4) derecha iquierda: Rotación doble derecha Estructuras de datos 6. Notas de Clase. Sergio A. Góme.. (c)
4 (1) Rotación iq iq (simple iquierda) t 4 t 3 t 1 t 2 t 1 t 2 t 3 t 4 Corresponde a dos inserciones seguidas hacia la iquierda de la raí Estructuras de datos 7 (2) Rotación iq der (doble iquierda) t 1 t 4 t 2 t 3 t 1 t 2 t 3 t 4 Corresponde a una inserción en el hijo iquierdo luego en hijo derecho del hijo iquierdo de la raí Estructuras de datos 8. Notas de Clase. Sergio A. Góme.. (c)
5 (3) Rotación der der (simple derecha) t 1 t 2 t 3 t 4 t 1 t 2 t 3 t 4 Corresponde a dos inserciones seguidas hacia la derecha de la raí Estructuras de datos 9 (4) Rotación der iq (doble derecha) t 1 t 4 t 2 t 3 t 1 t 2 t 3 t 4 Corresponde a una inserción en el hijo derecho de la raí luego en el hijo iquierdo del hijo derechos de la raí Estructuras de datos 10. Notas de Clase. Sergio A. Góme.. (c)
6 Implementación Java de la Inserción La única diferencia con el NodoABB es que en cada nodo mantengo la altura de dicho nodo. // Archivo: NodoAVL.java public class NodoAVL<E> { private NodoAVL<E> padre; private E rotulo; private int altura; // diferencia! private NodoAVL<E> iq, der; } public NodoAVL<E>(E rotulo){ altura = 0; // Al crear un nodo dumm anoto que su altura es // Resto Idem NodoABB} // setters getters incluendo la altura Estructuras de datos 11 public class AVL<E> { NodoAVL<E> rai; Comparator<E> comp; public AVL(Comparator<E> comp) { rai = new NodoAVL<E>(null); this.comp = comp; } public void insert(e ) { insertau( rai, ); } private int ma(int i, int j ) { return i>j? i : j; } Estructuras de datos 12. Notas de Clase. Sergio A. Góme.. (c)
7 private void insertau( NodoAVL<E> t, E item ) { if( t.getrotulo() == null ) { t.setrotulo( item ); t.setaltura( 1 ); t.setiq( new NodoAVL<E>( null ) ); t.setder( new NodoAVL<E>( null ) ); t.getiq().setpadre( t ); t.getder().setpadre( t ); } else { int comparacion = comp.compare( item, t.getrotulo() ); if( comparacion == 0 ) t.setrotulo( ); // nada mas cambia else if( comparacion < 0 ) { { insertarau( t.getleft(), item ); if( Math.abs( t.getleft().getaltura() t.getright().getaltura() ) > 1 ) { // Rebalancear mediante rotaciones: testeo por rotaciones (i) o (ii) // Si esto aca => item <, debo testear si (item < ) o (item > ) // si item < => rotacion (i); si item > => rotacion (ii) E = t.getrotulo(); // no se usa, es solo para la eplicación E = t.getleft().getrotulo(); E = t.getleft().getleft().getrotulo(); // no se usa, es solo para la eplicación int comp_item_ = comp.compare( item, ); if( comp_item_ < 0 ) rotacion_i(t); // item < => rotacion (i) else rotacion_ii(t); // item > => rotacion (ii) } else { /* Caso simétrico pero insertando hacia la derecha luego testeo por rotaciones (iii) (iv) */ }t.setaltura( ma(t.getleft().getaltura(), t.getright().getaltura()) + 1 ); } } Estructuras de datos 13 Complejidad temporal de la inserción Noten que las rotaciones se hacen en los nodos del camino desde la raí hasta la hoja donde se insertó la nueva clave. Como las rotaciones se implementan con asignaciones de referencias (posiciones), cada rotación se hace en tiempo constante. La cantidad de rotaciones es del orden de la altura del árbol. La altura es proporcional al logaritmo base 2 de la cantidad de nodos del árbol. Por lo tanto, el tiempo de insertar es del orden del logaritmo de la cantidad de nodos del árbol. Estructuras de datos 14. Notas de Clase. Sergio A. Góme.. (c)
8 Eliminación en un AVL Idem que la de ABB pero en este caso, cada ve que se sale de la recursión es necesario verificar de qué lado se eliminó un nodo para realiar el rebalanceo. Estructuras de datos 15 Árboles 2 3: Definiciones Un "árbol 2 3" es un árbol tal que cada nodo interno (no hoja) tiene dos o tres hijos, todas las hojas están al mismo nivel. La definición recursiva es: T es un árbol 2 3 de altura h si: a) T es vacío (es decir de altura 1) b) T es de la forma: T i n T d donde n es un nodo T i T d son árboles 2 3 cada uno de altura h 1. T i se dice "subárbol iquierdo" T d "subárbol derecho". c) T es de la forma: T i n donde n es un nodo T i, T m T d son árboles 2 3 cada uno de altura h 1. T i se dice "subárbol iquierdo, T m se dice "subárbol medio T d "subárbol derecho". T m T d Estructuras de datos 16. Notas de Clase. Sergio A. Góme.. (c)
9 Árboles 2 3: Definiciones Propiedad: Si un árbol 2 3 no contiene ningún nodo con 3 hijos entonces su forma corresponde a un árbol binario lleno. Estructuras de datos 17 Árboles 2 3: Definiciones Un arbol 2 3 es un "arbol 2 3 de búsqueda" si T es un árbol 2 3 tal que a) T es vacío (es decir de altura 1) b) T es de la forma: k n contiene una clave k, k es maor que las claves de T i k es menor que las claves de T d T i T d son árboles 2 3 de búsqueda T i T d c) T es de la forma: T i k 1 k 2 n contiene dos claves k 1 k 2, k 1 es maor que las claves de T i, k 1 es menor que las claves de T m k 2 es maor que las claves de T m k 2 es menor que las claves de T d T m T d T Estructuras de datos Dr. Sergio i, T A. m T Góme d son árboles 2 3 de búsqueda 18. Notas de Clase. Sergio A. Góme.. (c)
10 Árboles 2 3: Definiciones Reglas para ubicar entradas en los nodos de un árbol 2 3 de búsqueda: 1) Si n tiene dos hijos, entonces contiene una entrada 2) Si n tiene tres hijos, entonces contiene dos entradas 3) Si n es una hoja, entonces contiene una o dos entradas Estructuras de datos 19 Ejemplo de árbol Estructuras de datos 20. Notas de Clase. Sergio A. Góme.. (c)
11 Búsqueda en un árbol 2 3 Recuperar( T, clave ) > valor Sea R la rai de T SI clave está en R ENTONCES RETORNAR valor igual a valor asociado a la entrada SINO SI R es una hoja ENTONCES RETORNAR nulo { falla } SINO SI R tiene una entrada ENTONCES Sea k la clave de R SI clave < k ENTONCES RETORNAR Recuperar( Ti(T), clave ) SINO RETORNAR Recuperar( Td(T), clave ) SINO SI R tiene dos entradas ENTONCES Sean k1 k2 las claves de R SI clave < k1 ENTONCES RETORNAR Recuperar( Ti(T), clave ) SINO SI clave < k2 ENTONCES RETORNAR Recuperar( Tm(T), clave ) SINO RETORNAR Recuperar( Td(T), clave ) Estructuras de datos 21 Inserción en un árbol 2 3 Ejemplo: Dado el árbol 2-3: (50) (30) (70 90) (10 20) (40) (60) (80) (100) Insertar(39): El 39 termina en una hoja: (50) (30) (70 90) (10 20) (39 40) (60) (80) (100) Estructuras de datos 22. Notas de Clase. Sergio A. Góme.. (c)
12 Insertar(38): El 38 queda en un nodo con 3 entradas, entonces se parte en dos nodos se manda la entrada del medio para arriba (i.e. al padre). (30) (30 39) => (10 20) ( ) (10 20) (38) (40) Ahora el árbol es: (50) (30 39) (70 90) (10 20) (38) (40) (60) (80) (100) Estructuras de datos 23 Insertar(37): El 37 termina en la hoja junto con el 38. (50) (30 39) (70 90) (10 20) (37 38) (40) (60) (80) (100) 24. Notas de Clase. Sergio A. Góme.. (c)
13 Insertar(36): El 36 termina en la hoja junto con 37 38: (50) (30 39) (10 20) ( ) (40) Ha que partir la hoja mandar el 37 al padre: (50) ( ) (10 20) (36) (38) (40) Ahora el padre tiene una entrada de más, entonces partimos nuevamente mandamos el 37 a su padre: (37 50) (30) (39) (10 20) (36) (38) (40) 25 El árbol es entonces: (37 50) (30) (39) (70 90) (10 20) (36) (38) (40) (60) (80) (100) 26. Notas de Clase. Sergio A. Góme.. (c)
14 Insertar( ): a) (37 50) (30) (39) (70 90) (10 20) (35 36) (38) (40) (60) (80) (100) b) (37 50) (30 35) (39) (70 90) (10 20)(34) (36) (38) (40) (60) (80) (100) c) (37 50) (30 35) (39) (70 90) (10 20)(33 34) (36) (38) (40) (60) (80) (100) Resolución de Problemas Algoritmos Dr. Sergio A. Góme 27 Insertar(32): (37) (33) (50) (30) (35) (39) (70 90) (10 20)(32) (34) (36) (38) (40) (60) (80) (100) 28. Notas de Clase. Sergio A. Góme.. (c)
15 RESUMEN: Para insertar un valor X en un árbol 2 3, primero ha que ubicar la hoja L en la cual X terminará. Si L contiene ahora dos valores, terminamos. Si L contiene tres valores, ha que partirla en dos hojas L1 L2. L1 se queda con el valor más pequeño, L2 con el más grande, el del medio se manda al padre P de L. Los nodos L1 L2 se convierten en los hijos de P. Si P tiene sólo 3 hijos ( 2 valores), terminamos. En cambio, si P tiene 4 hijos ( 3 valores), ha que partir a P igual que como hicimos con una hoja sólo que ha que ocuparse de sus 4 hijos. Partimos a P en P1 P2, a P1 le damos la clave más pequeña los dos hijos de la iquierda a P2 le damos la clave más grande los dos hijos de la derecha. Luego de esto, la entrada que sobra se manda al padre de P en forma recursiva. El proceso termina cuando la entrada sobrante termina en un nodo con dos entradas o el árbol crece 1 en altura (al crear una nueva raí). 29 Bibliografía Capítulo 10, Secciones 2 4 de M. Goodrich & R. Tamassia, Data Structures and Algorithms in Java. Fourth Edition, John Wile & Sons, Árboles 2 3: Basado en Paul Helman & Robert Veroff. Intermediate Problem Solving and Data Structures. Walls and Mirrors, Benjamming Cummings, Menlo Park, Estructuras de datos 30. Notas de Clase. Sergio A. Góme.. (c)
Estructuras de Datos Clase 20 Árboles de búsqueda
Estructuras de Datos Clase 20 Árboles de búsqueda Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina
Más detallesEstructuras de Datos Clase 14 Árboles binarios de búsqueda
Estructuras de Datos Clase 14 Árboles binarios de búsqueda Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,
Más detallesTema 10: Árbol binario de búsqueda
Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de
Más detallesTEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica
TEMA 3. Árboles Objetivos En este tema se estudia una de las estructuras de datos no lineal más importante en computación, el árbol. Comenzaremos introduciendo la terminología asociada a los árboles y
Más detallesÁrboles Binarios Ordenados Árboles AVL
Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Diseño e Implementación TAD Árbol Representación de árboles
Más detallesÁrboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda
Árboles Árboles Mario Medina C. mariomedina@udec.cl Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles
Más detallesÁrbol ABB equilibrado. Lección: Árboles. Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58
Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58 Índice 1 Árbol de búsqueda 2 2/ 58 Índice Árbol de búsqueda 1 Árbol de búsqueda 2 3/ 58 Árbol de búsqueda Es
Más detallesEstructura de Datos. Temario Unidad VI. Árboles Árboles AVL
Estructura de Datos Árboles Árboles VL Temario Unidad VI 6.1 Definición operaciones 6.2 Implementación 6.3 Recorrido en Árboles inarios 6.4 Árboles VL su implementación 6.5 Árboles n-arios 6.6 Árboles
Más detallesEstructura de Datos Tema 6. Árboles. Contenido 14/06/2018
Estructura de Datos Tema 6. Árboles Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. dtorres@mixteco.utm.mx Contenido 1. Definición y operaciones
Más detallesEstructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010
Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del
Más detallesÁrboles balanceados (AVL) Estructura de datos
Árboles balanceados (AVL) Estructura de datos Definición de un árbol balanceado Es un árbol binario de búsqueda en el cual se cumple: Para todo nodo T del árbol, la altura de los subárboles izquierdo y
Más detallesProgramación II Arboles Binarios(AB)
Programación II Arboles Binarios(AB) Definición Un árbol consta de un conjunto finito de elementos, denominados nodos, y un conjunto finito de líneas dirigidas, denominadas enlaces, que conectan los nodos.
Más detallesDiseño de Conjuntos y Diccionarios
Diseño de Conjuntos y Diccionarios Representación de Conjuntos y Diccionarios TAD Diccionario(clave, significado) Observadores básicos def?: clave c x dicc(clave, significado) d bool obtener: clave c dicc(clave,
Más detallesEstructuras de Datos Clase 4 Pilas y colas
Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo
Más detallesEstructura de Datos Unidad 6: ARBOLES
Estructura de Datos Unidad 6: ARBOLES A. CONCEPTO DE ARBOL B. TIPOS DE ARBOL C. ARBOL BINARIO D. IMPLEMENTACION DE UN ARBOL BINARIO E. PROYECTO Introducción En ciencias de la informática, un árbol es una
Más detallesEstructuras de Datos
108 Ejercicio: Genere el árbol binario de búsqueda para la siguiente secuencia de números: 8, 9, 11, 15, 19, 20, 21, 7, 3, 2, 1, 5, 6, 4, 13, 14, 10, 12, 17, 16, 18. Analice y describa lo que sucede durante
Más detallesPROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA
PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA UNIDAD DE APRENDIZAJE ADMINISTRACION DE BASES DE DATOS Unidad de competencia III Manejar las estructuras dinámicas en memoria secundaria Arboles ELABORACION
Más detallesEDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
Más detallesEstructuras de Datos Clase 10 Árboles binarios
Estructuras de Datos Clase 10 Árboles binarios Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina
Más detallesEstructura de Datos Árboles Árboles 2-3
Estructura de Datos Árboles 1-2-3 Árboles 2-3 Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 1 Arboles 1-2-3 Árbol n-ario ordenado de orden 3 Cada nodo tiene 1 ó 2 elementos 75 Nodo
Más detallesÁrboles RN Montículos
Árboles RN Montículos Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Árbol AVL Árbol AVL Balanceo cuatro posibilidades que requieren rotación
Más detallesEstructuras de Datos. Clase 10 Árboles binarios
Clase 10 Árboles binarios http://cs.uns.edu.ar/~sag Bahía Blanca, Argentina Árboles binarios Un árbol binario es un árbol ordenado que cumple: 1) Cada nodo tiene a lo sumo dos hijos 2) Cada nodo hijo es
Más detallesAlgoritmos y Programación II Curso 2006
Arboles: Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz. Los nodos mantienen entre ellos una relación que define una estructura jerárquica
Más detallesEstructuras de Datos Clase 10 Árboles binarios
Estructuras de Datos Clase 10 Árboles binarios Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina
Más detallesLaboratorio de Estructuras de Datos II
Laboratorio de Estructuras de Datos II Segundo examen parcial Fecha límite de entrega: Jueves 19 de noviembre de 2009, 3:59:59 p.m. Los árboles B son estructuras de datos jerárquicas que se utilizan para
Más detallesProgramación II Árboles binarios de búsqueda (ABB)
Programación II Árboles binarios de búsqueda (ABB) Definición Un árbol binario de búsqueda(abb) a es una estructura de datos de tipo árbol binario en el que para todos sus nodos, el hijo izquierdo, si
Más detalles2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n).
Capítulo 7 Heap 7.1 Introducción Una cola de prioridad es una estructura de datos apropiada cuando la tarea más importante es localizar y/o eliminar el elemento con valor menor de una colección. Ejemplo
Más detallesEstructura de Datos. Temario Unidad VI. Árboles Árboles Binarios
Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios
Más detallesDefinición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar.
Definición: ÁRBOL El árbol es como un tipo de grafo cíclico, conexo y no dirigido. Las estructuras tipo árbol se usan principalmente para representar datos con una relación jerárquica entre sus elementos.
Más detallesEstructuras de Datos Clase 4 Pilas y colas
Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo
Más detallesEl método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol
Árboles Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un árbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos
Más detalles1. Árbol Binario de Búsqueda: Las clases Java NodoABB y ABB. 1. Definición y representación en Java 2. Operaciones y su coste estimado
Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un ABB Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un Árbol Binario de Búsqueda Germán Moltó Escuela Técnica
Más detalles1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío.
Capítulo 6 Árboles 6.1 Introducción Esta no es una estructura lineal, deben conocerlos de matemáticas finitas. Ejemplos: la tabla de contenido de un libro, los que se hacen en los torneos, los arboles
Más detallesÁrboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15
Árboles balanceados Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1 Árboles balanceados Los algoritmos en árboles binarios de búsqueda dan buenos resultados en el caso promedio pero el
Más detallesEstructuras de Datos
Estructuras de Datos. Tema 1. Programación Imperativa de Computadores Tema 2. Fundamentos de Complejidad Algorítmica Tema 3. Estructuras de datos jerárquicas Tema 4. concepto y especificación de Tipos
Más detalles4.5 Árboles AVL (Adelson-Velskii y Landis) Inserción y extracción en árboles AVL
4.5 Árboles AVL (Adelson-Velskii y Landis) Árbol binario de búsqueda que verifica que las alturas de los subárboles derecho e izquierdo de cada nodo sólo pueden diferir, a lo sumo, en 1 lo que garantiza
Más detallesNIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Más detallesA) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES
Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN
Más detallesEstructuras de Datos ARBOLES Y GRAFOS
Estructuras de Datos ARBOLES Y GRAFOS Rosa Barrera Capot rosa.barrera@usach.cl Grafo? Características Permiten Modelar un problema Aplicaciones: Ingeniería de Sistemas Modelado de Redes Ingeniería Industrial
Más detallesUNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo
Más detalles95.12 Algoritmos y Programación II Práctica 7: árboles
Notas preliminares 95.12 Algoritmos y Programación II Práctica 7: árboles El objetivo de esta práctica es introducir distintas clases de estructuras de datos arbóreas y algoritmos para manipularlas. Los
Más detallesProgramación de sistemas Árboles
Programación de sistemas Árboles Departamento de Ingeniería Telemática 1 Contenidos Concepto de árbol Terminología Implementación Casos especiales Árboles binarios de búsqueda Montículos (heaps) 2 Concepto
Más detallesELO320 Estructuras de Datos y Algoritmos. Arboles Binarios AVL. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Arboles Binarios AVL Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen
Más detallesDiseño y Análisis de Algoritmos con Java(I Sem. 2004) Prof. Dr.Eric Jeltsch F.
Arboles En esta sección se presentan los árboles que son un tipo de dato abstracto más adecuado para el tratamiento de grandes cantidades de información, las aplicaciones de los mismos son muy diversas,
Más detallesProgramación Estructuras Arborescentes
Programación 2 4 - Estructuras Arborescentes 1 Definición La recursión puede ser utilizada para la definición de estructuras realmente sofisticadas. Una estructura árbol (árbol general o finitario) con
Más detallesTRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión
ESTRUCTURAS DE DATOS TRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión Departamento de Ciencias e Ingeniería de la Computación - U.N.S. Segundo cuatrimestre
Más detallesAnálisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez
Análisis y Complejidad de Algoritmos Arboles Binarios Arturo Díaz Pérez Arboles Definiciones Recorridos Arboles Binarios Profundidad y Número de Nodos Arboles-1 Arbol Un árbol es una colección de elementos,
Más detallesProgramación TADs Arboles
Programación 2 10 - TADs Arboles 1 Arboles Una estructura árbol (árbol general) con tipo base T es, 1. O bien la estructura vacía 2. O bien un nodo de tipo T, llamado raíz del árbol, junto con un número
Más detallesEstructuras de Datos II
Estructuras de Datos II Segundo Parcial Los árboles B+ son estructuras de datos jerárquicas que se utilizan para almacenar y manipular datos ordenados de forma muy eficiente, ya que por su estructura y
Más detallesTema: ARBOLES. Instructor: MC. Gerardo Gálvez Gámez Junio de 2018 INTRODUCCIÓN:
UNIVERSIDAD AUTÓNOMA DE SINALOA Facultad de Informática uliacán Tema: AROLES Instructor: M. Gerardo Gálvez Gámez Junio de 2018 INTRODUIÓN: Hasta el momento solo se han estudiado estructuras lineales y
Más detallesÁrboles AVL. Lección 14
Árboles VL Lección 14 Árboles inarios Equilibrados Un árbol binario de búsqueda se dice equilibrado (o balanceado) si y sólo si, para cada uno de sus nodos ocurre que las alturas de sus 2 subárboles difieren
Más detallesÁrboles B y B ) 20. Algoritmos y Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 63
y B + 3.8 y B+! Problema de los ABB cuando se usa almacenamiento secundario:! la búsqueda de un elemento requeriría muchos accesos a disco (un acceso a disco es extremadamente lento si lo comparamos con
Más detallesINGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES
INGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. También se suele dar una definición
Más detallesEduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa
Estructura de Datos y de la Información Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Laboratorio de Investigación y Desarrollo en Inteligencia Artificial Departamento de Computación
Más detallesUNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Introducción Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. A B C D E F G H I J K Clasificación con respecto a su relación: Nodo hijo: cualquiera de los nodos
Más detallesProgramación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario
Práctico - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Objetivos Trabajar con los tipos abstractos de datos Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario. Desarrollar y analizar
Más detallesRepresentaciones de árboles
Clase 9 Árboles Generales (segunda parte) http://cs.uns.edu.ar/~sag Bahía Blanca, rgentina Representaciones de árboles Del padre Lista de hijos Goodrich& Tamassia: Del padre + Lista de hijos Hijo extremo
Más detallesÁrboles Binarios Ordenados Árboles AVL
Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Recordatorio... Se acerca la fecha de la primera entrega
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles
Más detallesUniversidad Tecnológica de la Mixteca
Universidad Tecnológica de la Mixteca Estructuras de datos Tema: Árboles Balanceados Integrantes López Santiago Jorge Alberto Marysol Mejía Cervantes Grupo 201-F. Semestre Marzo/2003- Julio/2003 Árboles
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
Más detallesELO320 Estructuras de Datos y Algoritmos. Heap & HeapSort. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Heap & HeapSort Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et
Más detallesContenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS
Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario
Más detallesÁrboles binarios. Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile
Árboles binarios Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Árbol: definición v Árbol (del latín arbor oris): Planta perenne,
Más detallesÁRBOLES BINARIOS DE BÚSQUEDA
ÁRBOLES BINARIOS DE BÚSQUEDA Introducción Generalidades Definición Consultas a un ABB Introducción Búsqueda Mínimo y máximo Sucesor y predecesor Modificaciones a un ABB Introducción Inserción Eliminación
Más detallesRoberto Carlos Abreu Díaz. October 28, 2009
Binarios binarios Java October 28, 2009 Binarios binarios Java 1 2 Binarios 3 binarios Java Código Java para búsqueda 4 Código Java para inserción 5 Caso 1 Caso 2 Caso 3 Outline Binarios binarios Java
Más detallesProgramación de sistemas
Programación de sistemas Árboles Julio Villena Román MATERIALES CREADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, M.Carmen Fernández Panadero, Raquel M.Crespo García,
Más detallesGUÍA DOCENTE ABREVIADA DE LA ASIGNATURA
GUÍA DOCENTE ABREVIADA DE LA ASIGNATURA G651 - Estructuras de Datos Doble Grado en Física y Matemáticas Grado en Ingeniería Informática Grado en Matemáticas Curso Académico 2018-2019 1. DATOS IDENTIFICATIVOS
Más detallesEstructuras de Datos Clase 6 Listas e Iteradores (primera parte)
Estructuras de Datos Clase 6 Listas e Iteradores (primera parte) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía
Más detallesVersión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:
Versión Iterativa de recuperar en un ABB Ejercicios Tema 11 Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz
Más detallesClase 32: Árbol balanceado AVL
Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes
Más detalles24/04/2018. Estructuras de Datos. Clase 11 Colas con prioridad. Comparación de claves con órdenes totales
Clase 11 Colas con prioridad http://cs.uns.edu.ar/~sag Bahía Blanca, Argentina ADT Cola con prioridad Una cola con prioridad almacena una colección de elementos que soporta: Inserción de elementos arbitraria
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º
1. Ejercicio (1 puntos) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 (a) Escribir la secuencia de ordenación del array A por medio del algoritmo de InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8, 7, 1,
Más detallesAlgoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y structuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. omplejidad de los
Más detallesEstructuras de datos Listas y árboles
Estructuras de datos Listas y árboles Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Listas y árboles p. 1 Listas Listas son estructuras un poco más avanzadas que puros arreglos, como
Más detallesClase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Más detallesUna clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos
Una clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos Definición formal del lenguaje por comprensión L = {C n D m \ n,m >0 Donde C representa
Más detallesEstructura de datos y algoritmos. Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios
Estructura de datos y algoritmos Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios TEMA V : TIPOS DE DATOS ABSTRACTOS NO LINEALES: ÁRBOLES 5.1 Conceptos y definiciones 5.2 Árboles perfectamente
Más detallesDefinición recursiva de árbol. Definición formal de árbol 12/04/2018
Dr. Sergio. Gómez Clase 8 Árboles Generales (primera parte) Dr. Sergio. Gómez http://cs.uns.edu.ar/~sag Bahía Blanca, rgentina reliminares Un árbol es un TD que almacena los elementos jerárquicamente Con
Más detallesEstructuras de datos Solemne 2
Estructuras de datos Solemne 2 Profesores: Luis Bastías, Rodrigo Paredes, Iván Zuñiga Ayudantes: Patricia Albornoz, Francisco Claude, Hans Ulloa Sin apuntes, 1:30 horas P1. Move-To-Front Lists Utilizando
Más detallesAnálisis y Complejidad de Algoritmos. Arboles Rojinegros. Arturo Díaz Pérez
nálisis y omplejidad de lgoritmos rboles Rojinegros rturo íaz Pérez RedlackTree-1 efinición Los árboles rojinegros son estructuras basadas en árboles binarios balanceados. Un árbol rojinegro es un árbol
Más detallesEjercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.
Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;
Más detallesEliminación en un ABB
Eliminación en un El procedimiento para eliminar un nodo z de un árbol de búsqueda binaria tiene tres casos: aso 1: Si z no tiene hijos, se modifica su padre p[z] para reemplazar z con nil como su hijo.
Más detallesTemario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios
Temario 5.1 Árboles Binarios 5.2 Árboles n-arios Especificación Utilización Representación Enlazada 5.3 Árboles Binarios de Búsqueda 5.4 Árboles Parcialmente Ordenados 1 Árbol n-ario: O bien es el conjunto
Más detallesVersión Iterativa de recuperar en un. Soluciones Ejercicios Tema 11. protected NodoABB<E> recuperarmax(nodoabb<e> n) { while (n.der!= null) n = n.
Versión Iterativa de recuperar en un ABB Soluciones Ejercicios Tema 11 Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad
Más detallesOutline Desbalance Árboles Red-Black Rotaciones Inserción en Arboles Red-Black. Roberto Carlos Abreu Díaz. November 5, 2009
November 5, 2009 1 2 Reglas de los árboles Red-Black 3 4 luego de la inserción del nodo Outline de árboles binarios Cuando un árbol binario tiene la mayoría de sus nodos en un lado cae en desbalance Como
Más detallesAnálisis amortizado El plan:
Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras
Más detallesEstructuras de Datos Clase 11 Colas con prioridad
Estructuras de Datos Clase 11 Colas con prioridad Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina
Más detallesEstructuras de datos y algoritmos
Estructuras de datos y algoritmos 1. Introducción 2. Estructuras de datos lineales 3. Estructuras de datos jerárquicas 4. Grafos y caminos 5. Implementación de listas, colas, y pilas 6. Implementación
Más detallesLa máxima distancia entre dos nodos de un árbol está dada por alguna de las 3 siguientes: La máxima distancia entre dos nodos del subárbol izquierdo.
Dado un árbol binario cualquiera, calcular la máxima distancia entre dos nodos. El algoritmo debe funcionar en orden de complejidad, siendo n la cantidad de nodos. Idea del algoritmo: La máxima distancia
Más detallesESTRUCTURAS DE DATOS Y ALGORITMOS
ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno
Más detallesDefinición de árbol. Árboles
ÁRBOLES Árboles * Definición de árbol * Formas de representación * Nomenclatura sobre árboles * Árboles binarios * Declaración de árbol binario * Recorridos sobre árboles binarios * Construcción de un
Más detallesARBOLES B. Lo que si es cierto es que la letra B no significa "binario", ya que:
ARBOLES B El problema original comienza con la necesidad de mantener índices en almacenamiento externo para acceso a bases de datos, es decir, con el grave problema de la lentitud de estos dispositivos
Más detallesDefinición recursiva de los árboles
Árboles Un árbol es una estructura de datos jerarquizada ada dato reside en un nodo, y existen relaciones de parentesco entre nodos: padre, hijo, hermano, ascendiente, descendiente, etc. Ejemplo: apítulos
Más detallesAlgoritmos y Programación II 75.41
Algoritmos y Programación II 75.41 Cátedra: Lic. Gustavo Carolo Guía de Estudio Enero 2005 Indice Indice 2 Definición 3 Árbol Binario 4 Árbol General 5 Árbol AVL 5 Árbol B 6 Implementación de Binarios
Más detallesColas deprioridad y heaps
Colas deprioridad y heaps Colas de prioridad Numerosas aplicaciones Sistemas operativos, algoritmos de scheduling, gestión de colas en cualquier ambiente, etc. La prioridad en general la expresamos con
Más detallesÁrboles AVL. Laboratorio de Programación II
Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:
Más detallesEJERCICIOS DE ÁRBOLES BINARIOS
EJERCICIOS DE ÁRBOLES BINARIOS 1) Supongamos que tenemos una función valor tal que dado un valor de tipo char (una letra del alfabeto) devuelve un valor entero asociado a dicho identificador. Supongamos
Más detalles