Você está na página 1de 16

MAESTRA EN INGENIERA

MAESTRANTES: Ing. Jessica Aracely Castillo Martnez.


Ing. Magaly Martnez Jurez

CATEDRTICO: Dr. Said Polanco Martagn

MATERIA: Anlisis, Programacin y Diseo de Algoritmos

TEMA: rboles Rojos-Negros


INDICE:

1.-Introduccin
2.-Definicin
3.-Propiedades
4.-Insercin caso 1
5.-Insercin y rotacin caso 2
6.-Insercin y rotacin caso 3
7.-Casos combinados
8.-Caso prctico (programa en C)
9.-Preguntas
INTRODUCCIN

Un rbol rojo-negro es un tipo de rbol binario de bsqueda que intenta


mantener su altura o el numero de niveles de nodos bajo la raz tan
pequeos como sea posible.

Mantener baja la altura se consigue realizando transformaciones en el


rbol , con acciones como la rotacin y la insercin en el rbol
DEFINICIN
Un rbol rojo-negro es un tipo abstracto de datos. Concretamente es un rbol
binario de bsqueda equilibrado.

Un rbol rojo-negro mantiene las siguientes propiedades:

1.- Un nodo es rojo o negro


2- La raz siempre es negra
3.- Un nodo rojo siempre tendr hijos negros
4.- El nmero de nodos negros es el mismo en cualquier camino que vaya de la raz a
la hoja
RBOL ROJO-NEGRO

PROPIEDADES 11

2 14

1 7

5 8

1.- Un nodo es rojo o negro


2- La raz siempre es negra
3.- Un nodo rojo siempre tendr hijos negros
4.- El nmero de nodos negros es el mismo en cualquier camino que vaya de la raz
a la hoja
INSERCIN EN UN ARBOL ROJO-NEGRO CASO 1

20 20

20
10 10 30
30
10 30
35 35

35 c)
b)
a)
Si el hermano del padre (10) Si ahora la raz del rbol es
Cuando se encuentra una es tambin rojo, podemos roja, podemos cambiarla a
hoja, se inserta un nuevo modificar el color de los negra para recuperar la
elemento e inicialmente se le abuelos a rojo y cambiar propiedad 2 y mantener la 4.
otorga el color rojo. Si el tanto el padre como los
padre es tambin rojo, se hermanos del padre a negro.
habr violado la propiedad 3. Este proceso restaura la
propiedad 3 y no viola la 4.
INSERCIN EN UN ARBOL ROJO-NEGRO CASO 2

20
20
30
30
30
20 35
35
35

a) b) c)

Insertamos un nuevo nodo Entonces cambiamos el color Corregimos este hecho


con un padre rojo, pero ste del abuelo a rojo y el del rotando el abuelo de modo
no tiene un hermano rojo. padre a negro. Pero se ha que el padre se mueva en la
violado la propiedad 2 (la posicin que ocupaba el
raz es siempre negra). abuelo.
INSERCIN EN UN ARBOL ROJO-NEGRO CASO 3 (la rotacin simple ya no
funciona).
20 20 30

30 30 20

25 25 25

a) b) c)

Lo anterior solo funciona si el Si modificamos el color del Luego realizamos una rotacin. Pero
valor insertado esta del abuelo (20) a rojo y el del observamos que seguimos en el
mismo costado que su padre padre a negro(30) . costado izquierdo con una
a la vez que el padre del
combinacin padre rojo-hijo rojo
abuelo. 25 est insertado
como hijo izquierdo de 30
que a su vez es hijo derecho
de 20.
INSERCIN EN UN ARBOL ROJO-NEGRO CASO 3 (rotacin doble).

20 20 20
25
30 25 25
20 30
25 30 30

a) b) c) d)

Antes de modificar el color y Posteriormente podremos Y rotar.


realizar una rotacin en el modificar los colores.
nivel del abuelo, debemos
rotar el padre de modo que
el hijo se encuentre en el
mismo costado que su padre,
tal como esta el padre en
relacin con su abuelo .
RBOL ROJO-NEGRO DESPUS DE LA INSERCIN MOVILIZACIN DEL NEGRO HACIA ABAJO Y DEL ROJO
DE 4. HACIA ARRIBA. 11
11

2 14
2 14
1 7
1 7

5 8
5 8

4
4
Si hacemos que el padre sea rojo (7) y ambos hijos
Es posible que se presenten varios casos en un solo negros, entonces el problema queda resuelto. Pero
rbol. vemos que 7 tiene un padre rojo (2).
Aqu vemos la insercin de 4 y se observa una Sin embargo no podemos slo cambiar el color de 2
violacin a la prop. 3 (un nodo rojo siempre tendr a negro ya que su hermano (14) es tambin negro.
hijos negros) Si el hermano del padre es tambin rojo, Este problema requerir ms de una rotacin para ser
entonces el abuelo debe ser negro. corregido. Observamos que el hijo rojo (7) no se
encuentra en el mismo costado que su padre 2 est
en relacin con el abuelo (11).
ROTACIN DEL NODO ROJO HACIA EL EXTERIOR. MODIFICACIN DE LOS COLORES DE LOS NODOS DEL
PADRE Y DEL ABUELO.
11 11

7 7 14
14

2 8 2 8

1 5 1 5

4 4

Rotamos el rbol a la izquierda alrededor del nodo 2


Ahora modificaremos el nodo 7 a negro y el nodo 11 a
de modo que permanezca en el mismo costado que el
rojo
nodo 7, como ste se encuentra en relacin con su
abuelo (11).
RBOL ROJO-NEGRO FINAL DESPUS DE LA INSERCIN.

2 11

1 8 14
5

Realizamos una rotacin alrededor del nodo 11, recuperndo el


equilibrio de los nodos negros
CASO PRCTICO
25

19 28

17 20 27 33

40
15 18 22 26
32

38 48
9

6 57

72
2 7 35

60 94
44
1 4 23

11 27 39 54 81

22 30 46
SESIN DE PREGUNTAS

Você também pode gostar