TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

19
Árboles R-B Instituto Tecnológico de Costa Rica

Transcript of TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Page 1: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Árboles R-BInstituto Tecnológico de Costa Rica

Page 2: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Árbol R-B

N

N R

NNN

Terminología

Propiedades

Operaciones

Page 3: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Terminología

Árbol Binario estricto (los nodos nulos se tienen en cuenta en ladefinición de operaciones -> todo nodo hoja es nulo)

Cada nodo tiene un estado Rojo o Negro

oLos nodos hoja nulos están en estado negro

La raíz siempre es negra (condición que se impone para simplificar algunas operaciones)1-Un nodo rojo tiene 2 hijos negros

2-Todo camino de la raíz a cualquier hojapasa por el mismo número de nodos negros.

N

Y X

R

Menú

Page 4: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Propiedades

Cambiar un nodo de rojo a negro no afecta a la condición denominada 1. (ver terminología)pero si afecta a la condición denominada 2. (la altura negra se incrementa)

Cambiar un nodo de negro a rojo puede afectar a la condición 1 (cada nodo rojo debe tener 2 hijos negros) y también afecta a al 2 (altura negra se disminuye)

Si alguna operación genera que la raíz este en rojo, esta se puede cambiar a negra (debido a la terminología) sin afectar el comportamiento ni el orden del mismo

Borrar un nodo rojo no afecta al árbol, pero uno negro si, la altura negra

Menú

Page 5: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Operaciones

Insertar Buscar Eliminar

RN

7

N

7

9 7

N

7

9

Menú

Page 6: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Insertar Caso 1

Básicamente se comporta como la inserción en los árboles binarios.Nota: el término tío nodo será usadopara los nodos hermanos del actual padre,en dicho caso.

Al insertar, primero pregunta si el padre del actual nodo es null. De ser V,Procede a agregarlo como tal.Debido a las propiedades de Los árboles R-B, al ser agregadode raíz, se denomina negro, ya que toda raíz es NEGRA.

83

83

N

Op…

Page 7: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

83

N

Insertar Caso 2

Si el actual nodo entra y ya hay “papá”, entonces inicia el caso 2…

Al agregar un nodo habiendo un papá, entonces el actual se convierte en hijo de color rojo,Note que: se cumple la propiedadesdel árbol r-b, se cumple:raíz negra, hojas negras , el recorridode la raíz hasta las hojas tiene la mismacantidad de nodos negros.

40

40

Page 8: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

83

40

Insertar Caso 3

En el momento que inserteun nuevo nodo y tanto el padrecomo el tío son de color rojo entonces estamos en el caso 3…

A la hora que ingrese el nuevo nodo, se procede a repintar losnodos padre y tío, consecuentementeel abuelo, con la única razón de preservarla propiedad de la cantidad de nodos negros de la raíz hasta las hojas.Por lo tanto, se cambia padre y tío a negro, y el abuelo a rojo.

85

20

83

85

40

Page 9: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

83

40

Insertar Caso 4

El caso 4 aparece cuando se inserta un nodopero tenemos: un abuelo negro, padre rojo y tío negro.

Cuando el nodo actual entra al árbol y se inserta como hijo derechoentonces se tiene que rotar hacía la izquierda.Con el motivo de mantener la propiedadde que cada padre rojo debe tener 2 hijos negros.Sin embargo en este caso se acomoda paradarle paso al caso 5…

50

85

NN

N

Page 10: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

83

40

Insertar Caso 5

Caso 5, continuación del 4,

Se procede a rotar hacía la derechade la siguiente manera:Nodo recién insertado “40”padre “50”, tío “85”, abuelo “83”.entonces:El padre pasa al lugar de raíz.el abuelo pasa al lugar del tío.el nodo actual al lugar de su padre.el tío pasa a un nivel mas abajo.

50

85

N N

NN

El árbol queda acomodado y cumpletodas las propiedades

83

50

Page 11: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

83

40

85

20

55

84

97

360

35

96

Búsqueda

La búsqueda consiste en acceder al árbol y comparar los valores que tiene con el que queremos encontrar.

Paso 1: Pregunta si el valora buscar es igual a la raíz,Si es true, lo retorna.

83

Paso 2: Si el buscado no está en la raíz, entonces Busca en el subárbol izquierdo,O bien en el subárbol derecho.Recursivamente…

396

N N N N

Op…

95

Page 12: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Eliminar Caso1

83

4085

80

25

N

40Se borrará 40, por lo que el

nodo 25 será la nueva raízcumpliendo con las propiedades

N N

N

N N

Op…

Page 13: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Eliminar Caso2

En este caso, tenemos que borrarun nodo, el cuál tiene un hijorojo..

Luego de encontrar el nodo,se intercambia con su hijo rojoy se borra, pero se incumplela propiedad de todos los hojatengan la misma altura negra,por lo que se cambia el color..note el 25 paso de rojo a negro

83

4085

80

25

N

N N

N

N N

40

25

Page 14: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Eliminar Caso inédito 1

En este caso, tenemos que borrar, perohay Hermano rojo y padre Negro..

El problema radica en que el hermano del nodo 40 (ósea 85), tiene una altura negra de 1por lo que 40 debe tener tras el borrado una altura menor, es decir 0. Lo que pasa es que 40 es negroes decir, va a tener altura 1, por lo que debe tener un hermanopara que el árbol no quede desequilibrado.Lo cuál necesita una rotación

83

4085

84N

N N

90N

N N

85

83

Page 15: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Eliminar Caso inédito 2

En este caso, tenemos Hermano negrono nulo, sobrinos negros, padre negro..

Procedemos a cambiar el color del hermano (85) a rojo, con esto 40 y 85tienen la misma altura Negra.

83

4085

84N

N N

90N

N N

85

Page 16: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Eliminar Caso inédito 3

En este caso, el hermano es negro nonulo, los sobrinos son negros pero el papá es ROJO..

La solución está en cambiar la raíz a negra, ya que si no estaría violandolas propiedades de los R-B, así mismo el color del hermano (85) pasa a ser rojo

83

4085

84N

N N

90N

N N

83

85

Page 17: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Eliminar Caso inédito 4

Aquí tenemos un hermano negro no nulosobrinos rojo / negro..

Es importante notar que el padre no importa el color en este caso,cuando se rota también se cambian loscolores tanto de 54 y 85.

50

4085

54

52

73

90

N

N N

N N

85

54

Page 18: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Eliminar Caso inédito 5

En él encontramos hermano negro no nulosobrinos cualquiera (izq)/ rojo (der), padre cualquier color

Se rota el hermano y el padre, se cambia de color, el padre (50) pasa a ser negro, yel hermano (85) toma el color del padreel sobrino derecho pasa de rojo a negro.

40

50

85

54

N

90

N

N

50

85

Page 19: TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum

Estructuras de Datos.Profesora: Ericka SolanoEstudiantes:Pablo CamachoCristiam FloresLuis Serrano Barnum Castillo