TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
-
Upload
pablo-camacho -
Category
Technology
-
view
95 -
download
2
Transcript of TEC- Árboles R-B Pablo,Cristiam, Luis, Barnum
Árboles R-BInstituto Tecnológico de Costa Rica
Árbol R-B
N
N R
NNN
Terminología
Propiedades
Operaciones
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ú
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ú
Operaciones
Insertar Buscar Eliminar
RN
7
N
7
9 7
N
7
9
Menú
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…
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
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
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
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
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
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…
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
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
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
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
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
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
Estructuras de Datos.Profesora: Ericka SolanoEstudiantes:Pablo CamachoCristiam FloresLuis Serrano Barnum Castillo