You are on page 1of 7

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS


ELECTRNICA E INDUSTRIAL

Deber de estructura
de datos

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.


BIBLOGRAFA:
http://es.wikipedia.org/wiki/%C3%81rbol_rojo-negro
http://es.scribd.com/doc/119520624/Arbol-rojo-negro#download
http://fcqi.tij.uabc.mx/usuarios/palacios/Unidad%20IV%20Arboles.pdf

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