SlideShare una empresa de Scribd logo
1 de 10
Árbol binario Rojo-Negro
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Defensa
Ministerio del Poder Popular para la Educación Superior
Universidad Nacional Experimental de la Fuerza Armada
Mérida Núcleo Mérida
Integrantes:
Asuaje Katherine V.-20.151.987
Duque Antony V.-24.552.503
Rosas Francisco V.-25.916.407
Villamizar Miguel V.-23.442.804
Árbol binario Rojo-Negro
Es un árbol de búsqueda, en el que cada nodo almacena un bit
adicional de información llamado color, el cual puede ser rojo o
negro.
Cada nodo de un árbol rojo negro contiene:
color, información, hijo izquierdo, hijo derecho y padre.
Si un hijo o el padre de un nodo no existe, el apuntador
correspondiente contiene el valor NULO, el cual consideraremos como
un nodo cuyo color es negro.
Los árboles rojo negros es un tipo de árbol que están balanceados de
tal manera que el tiempo de realizar operaciones sea O(log n) en el
peor de los casos.
Propiedades
Todo árbol rojo-negro satisface las siguientes propiedades:
Todo nodo es rojo o negro.
La raíz es negra.
Toda hoja (NULO) es negra.
Un nodo es rojo cuando sus dos hijos son negros.
En un camino, no puede haber más de dos nodos rojos consecutivos, pero sí
pueden haber n nodos negros consecutivos. Esto significa que un nodo rojo no
puede tener ningún hijo rojo.
Para cada nodo, todas las rutas de un nodo a las hojas (NULOS) contienen el
mismo número de nodos negros. El número de nodos negros en esta ruta se
conoce como ALTURA-NEGRA del nodo.
Búsqueda
Se hace de igual manera que en un árbol
binario de búsqueda.
Terminología (ALTURA NEGRA )
Altura negra de un árbol: la altura negra de su raíz.
Altura 1
Altura 2
Altura 3
Altura 1
Altura 2
Altura 3
Ventajas
Todas las operaciones son O(log n).
Se mantienen mas balanceados que otras
estructuras.
Permite organizar un listado de números de
manera sencilla.
Desventajas
Su costo espacial es mayor que el de
otros arboles por el uso de nodos
centinelas.
Rotación
Para conservar las propiedades que debe cumplir
todo árbol rojo-negro, en ciertos casos de la inserción y
la eliminación será necesario reestructurar el árbol, si
bien no debe perderse la ordenación relativa de los
nodos. Para ello, se llevan a cabo una o varias
rotaciones, que no son más que reestructuraciones en
las relaciones padre-hijo-tío nieto.
Eliminación y casosInserción y casos
La inserción se hace como en un árbol
binario de búsqueda.
Al hacer una eliminación también es
necesario hacer rotaciones y cambios de
color según los casos que se especificaran
después.
Casos de inserción:
1. El padre del nodo es de color negro.
2. El padre del nodo es la raíz del árbol y es de
color rojo: Se resuelve cambiando de color la
raíz.
3. El padre del nodo es rojo y no es la raíz.
Existen 3 sub-casos:
3.1.-El tío del nodo también es rojo: Se resuelve
cambiando los colores del padre, del tío y del
abuelo.
3.2.-Se resuelve cambiando los colores del
padre, del tío y del abuelo: Se resuelve con una
rotación simple a la derecha del abuelo.
3.3.-El tío del nodo es negro, y X es hijo derecho:
Se resuelve con una rotación simple a izquierda
del padre, en este punto, se resuelve como en el
caso anterior.
Casos de eliminación:
1. el nodo es una hoja, se elimina fácilmente.
2. El nodo hermano y sus dos hijos son negros: el
negro adicional se mueve arriba del árbol.
3. El nodo tiene dos hijos, nos encontramos con el
sucesor que lo sustituirá. El Sucesor es el nodo mas
a la izquierda en el subárbol derecho - lo
cambiamos y procedemos al borrado esto tiene
como máximo un hijo y lo podemos borrar.
4. Nodo hermano y su hijo más cercano al nodo es
de color negro, el otro es de color rojo: Al cambiar
el color de algunos y la rotación que podemos
sacar el extra negro.
5. El nodo tiene un hijo hoja, cambia el nodo por el
hijo y se borra.
class ArbolRojoNegro {
static class Nodo {
Comparable clave;
Nodo izq;
Nodo der;
Nodo padre;
boolean color;
}
private static final boolean NEGRO = false;
private static final boolean ROJO = true;
private static final Nodo NULO;
static {
NULO = new Node();
NULO.clave = null;
NULO.padre = NULO;
NULO.izq = NULO;
NULO.der = NULO;
NULO.color = NEGRO;
}
void insertar(Nodo z) {...}
void eliminar(Nodo z) {...}
Nodo buscar(Comparable clave)
}
public rotarIzq(Nodo x) {
Nodo y = x.der;
x.der = y.izq;
y.izq.padre = x;
y.padre = x.padre;
if (x.padre==NULO) root = y;
else if (x==x.padre.izq) x.padre.izq = y;
else
x.padre.der = y;
y.izq = x; x.padre = y;
}
Código en Java
public void insertar(Nodo z){
Nodo y = NULO;
Nodo x = root;
while (x!=NULO) {
y = x;
if (z.clave < x.clave)
x = x.izq;
else
x = x.der;
}
z.padre = y;
if (y == NULO)
root = z;
else if (z.clave<y.clave)
y.izq = z;
else
y.der = z;
z.izq = z.der = NULO;
z.color = ROJO;
corregirInsercion(z)
}
public rotarDer(Nodo y){
x = y.izq;
y.izq = x.der;
x.der.padre = y;
x.padre = y.padre;
if (y.padre==NULO) root = x;
else if (y==y.padre.izq) y.padre.izq = x;
else
y.padre.der = x;
x.der = y; y.padre = x;
}
void corregirInsercion(Nodo z){
while (z.padre.color == RED{
if (z.padre == z.padre.padre.izq) {
y = z.padre.padre.der;
if (y.color==RED) {
z.padre.color = NEGRO;
y.color = NEGRO;
z.padre.padre.color = ROJO;
z = z.padre.padre;
} else {
if (z == z.padre.der) {
z = z.padre;
rotarIzq(z);
}
z.padre.color = NEGRO;
z.padre.padre.color = ROJO;
rotarDer(z.padre.padre);
}
}
else {
y = z.padre.padre.izq;
if (y.color == ROJO) {
z.padre.color = NEGRO;
y.color = NEGRO;
z.padre.padre.color = ROJO;
z = z.padre.padre;
} else {
if (z == z.padre.izq) {
z = z.padre;
rotarDer(z);
}
z.padre.color = NEGRO;
z.padre.padre.color = ROJO;
rotarIzq(z.padre.padre);
}
}
}
root.color = NEGRO;
}
Referencias
www.ingsistemas.ufps.edu.co/SEED/arbolrojinegro.html
www.ica.luz.edu.ve/eda/guias/rojonegros.pdf

Más contenido relacionado

La actualidad más candente

metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialNoraVelasquez4
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 

La actualidad más candente (20)

Arbol aa
Arbol aaArbol aa
Arbol aa
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificial
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
22 ejercicios base de datos
22 ejercicios base de datos 22 ejercicios base de datos
22 ejercicios base de datos
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 

Similar a Arbol rojo y negro (20)

Arboles rojonegros.pptx
Arboles rojonegros.pptxArboles rojonegros.pptx
Arboles rojonegros.pptx
 
Arbol Rojo y Negro
Arbol Rojo y NegroArbol Rojo y Negro
Arbol Rojo y Negro
 
Arn doniel acosta
Arn doniel acostaArn doniel acosta
Arn doniel acosta
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles
 
Árboles binarios
Árboles binariosÁrboles binarios
Árboles binarios
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Arboles
Arboles Arboles
Arboles
 
Arboles02
Arboles02Arboles02
Arboles02
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
 
Arboles
ArbolesArboles
Arboles
 
TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
TEC- Árboles R-B Pablo,Cristiam, Luis, BarnumTEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arboles
 
Estructuras No Lineales
Estructuras No LinealesEstructuras No Lineales
Estructuras No Lineales
 
2.4.3 Operaciones Básicas.pptx
2.4.3 Operaciones Básicas.pptx2.4.3 Operaciones Básicas.pptx
2.4.3 Operaciones Básicas.pptx
 
Arboles
ArbolesArboles
Arboles
 

Último

Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 

Último (20)

Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 

Arbol rojo y negro

  • 1. Árbol binario Rojo-Negro República Bolivariana de Venezuela Ministerio del Poder Popular para la Defensa Ministerio del Poder Popular para la Educación Superior Universidad Nacional Experimental de la Fuerza Armada Mérida Núcleo Mérida Integrantes: Asuaje Katherine V.-20.151.987 Duque Antony V.-24.552.503 Rosas Francisco V.-25.916.407 Villamizar Miguel V.-23.442.804
  • 2. Árbol binario Rojo-Negro Es un árbol de búsqueda, en el que cada nodo almacena un bit adicional de información llamado color, el cual puede ser rojo o negro. Cada nodo de un árbol rojo negro contiene: color, información, hijo izquierdo, hijo derecho y padre. Si un hijo o el padre de un nodo no existe, el apuntador correspondiente contiene el valor NULO, el cual consideraremos como un nodo cuyo color es negro. Los árboles rojo negros es un tipo de árbol que están balanceados de tal manera que el tiempo de realizar operaciones sea O(log n) en el peor de los casos.
  • 3. Propiedades Todo árbol rojo-negro satisface las siguientes propiedades: Todo nodo es rojo o negro. La raíz es negra. Toda hoja (NULO) es negra. Un nodo es rojo cuando sus dos hijos son negros. En un camino, no puede haber más de dos nodos rojos consecutivos, pero sí pueden haber n nodos negros consecutivos. Esto significa que un nodo rojo no puede tener ningún hijo rojo. Para cada nodo, todas las rutas de un nodo a las hojas (NULOS) contienen el mismo número de nodos negros. El número de nodos negros en esta ruta se conoce como ALTURA-NEGRA del nodo. Búsqueda Se hace de igual manera que en un árbol binario de búsqueda.
  • 4. Terminología (ALTURA NEGRA ) Altura negra de un árbol: la altura negra de su raíz. Altura 1 Altura 2 Altura 3 Altura 1 Altura 2 Altura 3
  • 5. Ventajas Todas las operaciones son O(log n). Se mantienen mas balanceados que otras estructuras. Permite organizar un listado de números de manera sencilla. Desventajas Su costo espacial es mayor que el de otros arboles por el uso de nodos centinelas. Rotación Para conservar las propiedades que debe cumplir todo árbol rojo-negro, en ciertos casos de la inserción y la eliminación será necesario reestructurar el árbol, si bien no debe perderse la ordenación relativa de los nodos. Para ello, se llevan a cabo una o varias rotaciones, que no son más que reestructuraciones en las relaciones padre-hijo-tío nieto.
  • 6. Eliminación y casosInserción y casos La inserción se hace como en un árbol binario de búsqueda. Al hacer una eliminación también es necesario hacer rotaciones y cambios de color según los casos que se especificaran después. Casos de inserción: 1. El padre del nodo es de color negro. 2. El padre del nodo es la raíz del árbol y es de color rojo: Se resuelve cambiando de color la raíz. 3. El padre del nodo es rojo y no es la raíz. Existen 3 sub-casos: 3.1.-El tío del nodo también es rojo: Se resuelve cambiando los colores del padre, del tío y del abuelo. 3.2.-Se resuelve cambiando los colores del padre, del tío y del abuelo: Se resuelve con una rotación simple a la derecha del abuelo. 3.3.-El tío del nodo es negro, y X es hijo derecho: Se resuelve con una rotación simple a izquierda del padre, en este punto, se resuelve como en el caso anterior. Casos de eliminación: 1. el nodo es una hoja, se elimina fácilmente. 2. El nodo hermano y sus dos hijos son negros: el negro adicional se mueve arriba del árbol. 3. El nodo tiene dos hijos, nos encontramos con el sucesor que lo sustituirá. El Sucesor es el nodo mas a la izquierda en el subárbol derecho - lo cambiamos y procedemos al borrado esto tiene como máximo un hijo y lo podemos borrar. 4. Nodo hermano y su hijo más cercano al nodo es de color negro, el otro es de color rojo: Al cambiar el color de algunos y la rotación que podemos sacar el extra negro. 5. El nodo tiene un hijo hoja, cambia el nodo por el hijo y se borra.
  • 7. class ArbolRojoNegro { static class Nodo { Comparable clave; Nodo izq; Nodo der; Nodo padre; boolean color; } private static final boolean NEGRO = false; private static final boolean ROJO = true; private static final Nodo NULO; static { NULO = new Node(); NULO.clave = null; NULO.padre = NULO; NULO.izq = NULO; NULO.der = NULO; NULO.color = NEGRO; } void insertar(Nodo z) {...} void eliminar(Nodo z) {...} Nodo buscar(Comparable clave) } public rotarIzq(Nodo x) { Nodo y = x.der; x.der = y.izq; y.izq.padre = x; y.padre = x.padre; if (x.padre==NULO) root = y; else if (x==x.padre.izq) x.padre.izq = y; else x.padre.der = y; y.izq = x; x.padre = y; } Código en Java
  • 8. public void insertar(Nodo z){ Nodo y = NULO; Nodo x = root; while (x!=NULO) { y = x; if (z.clave < x.clave) x = x.izq; else x = x.der; } z.padre = y; if (y == NULO) root = z; else if (z.clave<y.clave) y.izq = z; else y.der = z; z.izq = z.der = NULO; z.color = ROJO; corregirInsercion(z) } public rotarDer(Nodo y){ x = y.izq; y.izq = x.der; x.der.padre = y; x.padre = y.padre; if (y.padre==NULO) root = x; else if (y==y.padre.izq) y.padre.izq = x; else y.padre.der = x; x.der = y; y.padre = x; }
  • 9. void corregirInsercion(Nodo z){ while (z.padre.color == RED{ if (z.padre == z.padre.padre.izq) { y = z.padre.padre.der; if (y.color==RED) { z.padre.color = NEGRO; y.color = NEGRO; z.padre.padre.color = ROJO; z = z.padre.padre; } else { if (z == z.padre.der) { z = z.padre; rotarIzq(z); } z.padre.color = NEGRO; z.padre.padre.color = ROJO; rotarDer(z.padre.padre); } } else { y = z.padre.padre.izq; if (y.color == ROJO) { z.padre.color = NEGRO; y.color = NEGRO; z.padre.padre.color = ROJO; z = z.padre.padre; } else { if (z == z.padre.izq) { z = z.padre; rotarDer(z); } z.padre.color = NEGRO; z.padre.padre.color = ROJO; rotarIzq(z.padre.padre); } } } root.color = NEGRO; }