BISOFT-28 Estructuras de Datos 2 Árboles Rojo-Negro Instructor Esteban Meneses Prof. María Eugenia Ucrós, Julia Espinoza G. Copyright Cenfotec S.A. 2003 Introducción • Los árboles binarios tienen grandes ventajas como dispositivos de almacenamiento: la búsqueda es rápida, así como la inserción y el borrado. • Las estructuras de datos lineales, sólo cumplen alguna de esas características. • Sin embargo, el buen desempeño de los árboles binarios está supeditado a que la inserción de nodos sea aleatoria. • Si la inserción de los nodos es en orden ascendente de las llaves, el árbol se degenera. • Se debe recurrir a un mecanismo para balancear el árbol. Copyright Cenfotec S.A. 2003 Árboles balanceados • Eficiencia O(log n) M D B A Q G C O N Z T Copyright Cenfotec S.A. 2003 Árboles degenerados • Eficiencia O(n) M A P R Q S T Copyright Cenfotec S.A. 2003 Árboles degenerados • Eficiencia O(n) M A P R Q S T Copyright Cenfotec S.A. 2003 Precedente • Árboles AVL. • Propiedades: – La diferencia entre las alturas de los hijos nunca es mayor a 1. – Sus dos hijos son árboles AVL. • Operaciones: – Rotaciones simples. – Rotaciones dobles. Copyright Cenfotec S.A. 2003 Rotación simple M D B D nodo externo zig-zig B M Copyright Cenfotec S.A. 2003 Rotación doble M M D B D zig-zag nodo interno B D B M Copyright Cenfotec S.A. 2003 Árboles Rojo-Negro • Todas las operaciones son iguales, en un principio, a los árboles binarios. • Existen algunas consideraciones especiales con las operaciones de inserción y de borrado. • Los nodos son coloreados. • Durante la inserción y el borrado, algunas reglas se deben seguir para preservar la configuración de los colores. Copyright Cenfotec S.A. 2003 Reglas Rojo-Negro 1)Cada nodo es, o rojo, o negro. 2)La raíz es siempre de color negro. 3)Si un nodo es rojo, sus hijos deben ser siempre negros (aunque lo opuesto no necesariamente es cierto). 4)Cualquier camino de la raíz a una hoja o a un hijo nulo, debe tener la misma cantidad de nodos negros. El número de nodos negros desde la raíz hasta una hoja se conoce con el nombre de altura negra. Copyright Cenfotec S.A. 2003 ¿Cómo se cumplen las reglas? • Se puede cambiar el color de los nodos. • Se pueden realizar rotaciones. Cambios de color Rotaciones • No se permiten llaves duplicadas. Copyright Cenfotec S.A. 2003 Manteniendo las reglas Rojo-Negro • Cambio de colores en la ruta hacia el lugar de inserción. – Regla de Oro: si se encuentra un nodo negro con dos hijos rojos se debe cambiar el color de todos (a menos de que el padre sea la raíz). – Altura negra queda intacta. • El nodo a insertar siempre es rojo. • Regla de Plata: un árbol binario completo se debe colorear siempre negro. Copyright Cenfotec S.A. 2003 Regla de Oro M D B Q G O Z insertar A Copyright Cenfotec S.A. 2003 Regla de Oro (cont.) M D B Q G O Z A Copyright Cenfotec S.A. 2003 Regla de Oro (cont.) M D B Q G O Z A Copyright Cenfotec S.A. 2003 Regla de Oro (cont.) M D B Q G O Z A Copyright Cenfotec S.A. 2003 Regla de Oro (cont.) M D B Q G O Z A Copyright Cenfotec S.A. 2003 Regla de Plata M D B Q G O Z Árbol binario completo: todas las hojas están al mismo nivel y cada nodo no hoja tiene 2 hijos. Copyright Cenfotec S.A. 2003 Regla de Plata (cont.) M D B Q G O Z A Copyright Cenfotec S.A. 2003 Rotaciones una vez insertado el nodo • Sea X es el nodo insertado, P su padre y G su abuelo. • X puede ser un nieto interno o externo. • Casos de inserción: – Posibilidad 1: P es negro. No hay problema. – Posibilidad 2: P es rojo y X es externo. • Cambiar el color de G. • Cambiar el color de P. • Rotar el abuelo. Copyright Cenfotec S.A. 2003 Rotaciones una vez insertado el nodo – Posibilidad 3: P es rojo y X es interno. • Cambiar el color de G. • Cambiar el color de X. • Rotar el padre. • Rotar el abuelo. Copyright Cenfotec S.A. 2003 Ejercicios • Ejercicio 1 – Realizar las siguientes inserciones: 2,25,13,8,9,15,28,35,1,10,22,12 – Borrar el nodo 12 • Ejercicio 2 – Realizar las siguientes inserciones: 10,11,12,13,14,15,27,5,18,37,1,7,40 – Borrar el nodo 10 • Ejercicio 3 – Realizar las siguientes inserciones: A,Z,Q,W,E,R,F,G,H,Y,B,M,P,L,C Copyright Cenfotec S.A. 2003 FIN Copyright Cenfotec S.A. 2003