3. Menú
Árbol Binario estricto (los nodos nulos se tienen en cuenta en la
definición de operaciones -> todo nodo hoja es nulo)
Cada nodo tiene un estado Rojo o Negro
Los nodos hoja nulos están en estado negro
X
o
Y
N
1-Un nodo rojo tiene 2 hijos negros
La raíz siempre es negra
(condición que se impone para
simplificar algunas operaciones)
R
2-Todo camino de la raíz a cualquier hoja
pasa por el mismo número de nodos negros.
4. Menú
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
6. Op…
Básicamente se comporta como
la inserción en los árboles binarios.
Nota: el término tío nodo será usado
para 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 agregado
de raíz, se denomina negro, ya
que toda raíz es NEGRA.
83
83
N
7. 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 propiedades
del árbol r-b, se cumple:
raíz negra, hojas negras , el recorrido
de la raíz hasta las hojas tiene la misma
cantidad de nodos negros.
40
83
N
40
8. En el momento que inserte
un nuevo nodo y tanto el padre
como 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 los
nodos padre y tío, consecuentemente
el abuelo, con la única razón de preservar
la 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.
20
83
40
85
9. El caso 4 aparece cuando se inserta un nodo
pero tenemos: un abuelo negro,
padre rojo y tío negro.
50
Cuando el nodo actual entra al
árbol y se inserta como hijo derecho
entonces se tiene que rotar hacía la
izquierda.
Con el motivo de mantener la propiedad
de que cada padre rojo debe tener 2 hijos
negros.
Sin embargo en este caso se acomoda para
darle paso al caso 5…
83
40
85
N
N
N
10. Caso 5, continuación del 4,
Se procede a rotar hacía la derecha
de 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
83
50
40
N
El árbol queda acomodado y cumple
todas las propiedades
83
85
N
N
N
11. Op…
83
96
3
95
La búsqueda consiste en
acceder al árbol y comparar
los valores que tiene con el
que queremos encontrar.
83
40
Paso 1: Pregunta si el valor
a buscar es igual a la raíz,
Si es true, lo retorna.
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…
20
85
55
84
97
3
60
35
96
N
N
N
N
12. Op…
40
Se borrará 40, por lo que el
nodo 25 será la nueva raíz
cumpliendo con las propiedades
83
85
40
25
N
N
N
80
N
N
N
13. En este caso, tenemos que borrar
un nodo, el cuál tiene un hijo
rojo..
40
83
25
40
25
Luego de encontrar el nodo,
se intercambia con su hijo rojo
y se borra, pero se incumple
la propiedad de todos los hoja
tengan la misma altura negra,
por lo que se cambia el color..
note el 25 paso de rojo a negro
N
85
N
N
80
N
N
N
14. En este caso, tenemos que borrar, pero
hay Hermano rojo y padre Negro..
85
83
83
40
N
85
84
N
N
El problema radica en que el hermano
del nodo 40 (ósea 85), tiene una altura negra de 1
por lo que 40 debe tener tras el borrado una
altura menor, es decir 0. Lo que pasa es que 40 es negro
es decir, va a tener altura 1, por lo que debe tener un hermano
para que el árbol no quede desequilibrado.
Lo cuál necesita una rotación
90
N
N
N
15. En este caso, tenemos Hermano negro
no nulo, sobrinos negros, padre negro..
83
85
40
N
84
N
N
Procedemos a cambiar el color del
hermano (85) a rojo, con esto 40 y 85
tienen la misma altura Negra.
90
N
N
N
16. En este caso, el hermano es negro no
nulo, los sobrinos son negros pero el
papá es ROJO..
83
83
85
85
40
N
84
N
N
La solución está en cambiar la raíz a
negra, ya que si no estaría violando
las propiedades de los R-B, así mismo
el color del hermano (85) pasa a ser rojo
90
N
N
N
17. Aquí tenemos un hermano negro no nulo
sobrinos rojo / negro..
50
54
85
40
85
90
54
N
52
Es importante notar que el padre no
importa el color en este caso,
cuando se rota también se cambian los
colores tanto de 54 y 85.
N
73
N
N
N
18. En él encontramos hermano negro no nulo
sobrinos cualquiera (izq)/ rojo (der), padre
cualquier color
85
50
85
40
50
54
90
N
Se rota el hermano y el padre, se cambia
de color, el padre (50) pasa a ser negro, y
el hermano (85) toma el color del padre
el sobrino derecho pasa de rojo a negro.
N
N