Nombre: Joel Allaica Caranqui Fecha: 22 de julio de 2014
Ambato Ecuador
RBOL ROJO-NEGRO
Un rbol rojo-negro es un tipo abstracto de datos. Concretamente, es un rbol binario de bsqueda equilibrado, una estructura de datos utilizada en informtica y ciencias de la computacin. La estructura original fue creada por Rudolf Bayer en 1972, que le dio el nombre de rboles-B binarios simtricos, pero tom su nombre moderno en un trabajo de Leo J. Guibas y Robert Sedgewick realizado en 1978. Es complejo, pero tiene un buen peor caso de tiempo de ejecucin para sus operaciones y es eficiente en la prctica. Puede buscar, insertar y borrar en un tiempo O(log n), donde n es el nmero de elementos del rbol. Sera ideal exponer la especificacin algebraica completa de este tipo abstracto de datos (TAD) escrita en algn lenguaje de especificacin de TADs, como podra ser Maude; sin embargo, la complejidad de la estructura hace que la especificacin sea bastante ilegible, y no aporta valor considerable al lector. Por tanto, su especificacin es expuesta a continuacin en lenguaje humano, esquemas e implementaciones en el lenguaje de programacin C. Terminologa Un rbol rojo-negro es un tipo especial de rbol binario usado en informtica para organizar informacin compuesta por datos comparables (por ejemplo, nmeros). En los rboles rojo-negro las hojas no son relevantes y no contienen datos. En los rboles rojo-negro, como en todos los rboles binarios de bsqueda, es posible moverse ordenadamente a travs de los elementos de forma eficiente si hay forma de localizar el padre de cualquier nodo. El tiempo de desplazarse desde la raz hasta una hoja a travs de un rbol equilibrado que tiene la mnima altura posible es de O(log n). Al implementar esta estructura es posible utilizar un nico nodo centinela. Este cumple la funcin de hoja para todas las ramas del rbol. As, todos los nodos internos que finalicen en una hoja tienen referencia a este nico nodo centinela. Esto no es necesario, ya que puede hacerse una referencia nula (NIL) en el final de cada rama. Propiedades
Un rbol rojo-negro es un rbol binario de bsqueda en el que cada nodo tiene un atributo de color cuyo valor es rojo o negro. En adelante, se dice que un nodo es rojo o negro haciendo referencia a dicho atributo. Adems de los requisitos impuestos a los rboles binarios de bsqueda convencionales, se deben satisfacer las siguientes reglas para tener un rbol rojo- negro vlido: 1. Todo nodo es o bien rojo o bien negro. 2. La raz es negra. 3. Todas las hojas (NULL) son negras. 4. Todo nodo rojo debe tener dos nodos hijos negros. 5. Cada camino desde un nodo dado a sus hojas descendientes contiene el mismo nmero de nodos negros. Estas reglas producen una caractersticas producen una regla crucial para los rboles rojo-negro: el camino ms largo desde la raz hasta una hoja no es ms largo que dos veces el camino ms corto desde la raz a una hoja. El resultado es que dicho rbol est aproximadamente equilibrado. Dado que las operaciones bsicas como insertar, borrar y encontrar valores tienen un peor tiempo de ejecucin proporcional a la altura del rbol, esta cota superior de la altura permite a los rboles rojo-negro ser eficientes en el peor caso, a diferencia de los rboles binarios de bsqueda. Para comprobarlo basta ver que ningn camino puede tener dos nodos rojos seguidos debido a la propiedad 4. El camino ms corto posible tiene todos sus nodos negros, y el ms largo alterna entre nodos rojos y negros. Dado que todos los caminos mximos tienen el mismo nmero de nodos negros por la propiedad 5, no hay ningn camino que pueda tener longitud mayor que el doble de la longitud de otro camino. En muchas presentaciones de estructuras arbreas de datos, es posible para un nodo tener solo un hijo y las hojas contienen informacin. Es posible presentar los rboles rojo-negro en este paradigma, pero cambian algunas de las propiedades y se complican los algoritmos. Por esta razn, este artculo utiliza hojas nulas. Una variante que se da al rbol rojo-negro es la de tratarlo como un rbol binario de bsqueda cuyas aristas, en lugar de nodos, son coloreadas de color rojo o negro, pero esto no produce ninguna diferencia. El color de cada nodo en la terminologa de este artculo corresponde al color de la arista que une el nodo a su padre, excepto la raz, que es siempre negra (por la propiedad 2) donde la correspondiente arista no existe. Al nmero de nodos negros de un camino se le denomina "altura negra". Usos y ventajas Los rboles rojo-negro ofrecen un peor caso con tiempo garantizado para la insercin, el borrado y la bsqueda. No es esto nicamente lo que los hace valiosos en aplicaciones sensibles al tiempo como las aplicaciones en tiempo real, sino que adems son apreciados para la construccin de bloques en otras estructuras de datos que garantizan un peor caso. Por ejemplo, muchas estructuras de datos usadas en geometra computacional pueden basarse en rboles rojo-negro. El rbol AVL es otro tipo de estructura con O(log n) tiempo de bsqueda, insercin y borrado. Est equilibrado de forma ms rgida que los rboles rojo-negro, lo que provoca que la insercin y el borrado sean ms lentos pero la bsqueda y la devolucin del resultado de la misma ms veloz. Los rboles rojo-negro son particularmente valiosos en programacin funcional, donde son una de las estructuras de datos persistentes ms comnmente utilizadas en la construccin de arrays asociativos y conjuntos que pueden retener versiones previas tras mutaciones. La versin persistente del rbol rojo-negro requiere un espacio O(log n) para cada insercin o borrado, adems del tiempo. Los rboles rojo-negro son isomtricos a los rboles 2-3-4. En otras palabras, para cada rbol 2-3-4, existe un rbol correspondiente rojo-negro con los datos en el mismo orden. La insercin y el borrado en rboles 2-3-4 son tambin equivalentes a los cambios de colores y las rotaciones en los rboles rojo-negro. Esto los hace ser una herramienta til para la comprensin del funcionamiento de los rboles rojo-negro y por esto muchos textos introductorios sobre algoritmos presentan los rboles 2-3-4 justo antes que los rboles rojo-negro, aunque frecuentemente no sean utilizados en la prctica. OPERACIONES: Las operaciones de slo lectura en un rbol rojo-negro no requieren modificacin alguna con respecto a las utilizadas en los rboles binarios de bsqueda, ya que cada rbol rojo-negro es un caso especial de rbol binario de bsqueda. Sin embargo, el resultado inmediato de una insercin o la eliminacin de un nodo utilizando los algoritmos de un rbol binario de bsqueda normal podra violar las propiedades de un rbol rojo-negro. Restaurar las propiedades rojo-negro requiere un pequeo nmero (O(log n))de cambios de color (que son muy rpidos en la prctica) y no ms de 3 rotaciones (2 por insercin). A pesar de que las operaciones de insercin y borrado son complicadas, sus tiempos de ejecucin siguen siendo O(log n). rboles Ternarios Un rbol ternario es una estructura similar a un rbol, tiene una raz y cada nodo tiene mximo tres hijos.
rboles libres Es una coleccin de vrtices y lados que satisfacen ciertos requerimientos. Un vrtice es un objeto que tienen un nombre y puede contener otra informacin asociada. Un lado es una conexin entre dos vrtices.
rboles con raz En este rbol un nodo es designado como la raz del rbol, en computacin se usa a este concepto se le conoce simplemente como rbol.
CONCLUIONES: Los arboles binarios son estructuras de datos, y como todas, este sirve para organizar datos para facilitar su manipulacin, ya sea el ingreso, borrado o bsqueda de datos, y precisamente una de las principales ventajas de los rboles binarios es la bsqueda, ya que como en muchos algoritmos de bsqueda necesitamos tener la informacin ordenada y en nuestros rboles binarios precisamente los datos van ingresando de forma ordenada. Recorridos con los conocidos mtodos recursivos: Inorden, Postorden, Preorden razn por la cual es esencial el estudio de este tema tan impotente y esencial en la estructura de datos