BISOFT-28 Estructuras de Datos 2 · Copyright Cenfotec S.A. 2003 • Los árboles binarios tienen...

Post on 24-Jun-2020

23 views 0 download

Transcript of BISOFT-28 Estructuras de Datos 2 · Copyright Cenfotec S.A. 2003 • Los árboles binarios tienen...

Copyright Cenfotec S.A. 2003 Prof. María Eugenia Ucrós, Julia Espinoza G.

BISOFT-28Estructuras de Datos 2

Árboles Rojo-Negro

Instructor Esteban Meneses

Copyright Cenfotec S.A. 2003

• Los árboles binarios tienen grandes ventajas como dispositivos de almacenamiento: la búsqueda es rápida, así como la inserción y el borrado.

• Las estructuras de datos lineales, sólo cumplen alguna de esas características.

• Sin embargo, el buen desempeño de los árboles binarios está supeditado a que la inserción de nodos sea aleatoria.

• Si la inserción de los nodos es en orden ascendente de las llaves, el árbol se degenera.

• Se debe recurrir a un mecanismo para balancear el árbol.

Introducción

Copyright Cenfotec S.A. 2003

• Eficiencia O(log n)

Árboles balanceados

M

D Q

B G

A

O Z

C TN

Copyright Cenfotec S.A. 2003

• Eficiencia O(n)

Árboles degenerados

M

PA

R

SQ

T

Copyright Cenfotec S.A. 2003

• Eficiencia O(n)

Árboles degenerados

M

PA

R

SQ

T

Copyright Cenfotec S.A. 2003

• Árboles AVL.• Propiedades:

– La diferencia entre las alturas de los hijos nunca es mayor a 1.

– Sus dos hijos son árboles AVL.• Operaciones:

– Rotaciones simples.– Rotaciones dobles.

Precedente

Copyright Cenfotec S.A. 2003

Rotación simple

M

D

B

M

D

Bzig-zig

nodo externo

Copyright Cenfotec S.A. 2003

Rotación doble

M

B

D

M

D

B

zig-zag

M

D

Bnodo interno

Copyright Cenfotec S.A. 2003

• Todas las operaciones son iguales, en un principio, a los árboles binarios.

• Existen algunas consideraciones especiales con las operaciones de inserción y de borrado.

• Los nodos son coloreados.• Durante la inserción y el borrado, algunas reglas se

deben seguir para preservar la configuración de los colores.

Árboles Rojo-Negro

Copyright Cenfotec S.A. 2003

1)Cada nodo es, o rojo, o negro.2)La raíz es siempre de color negro.3)Si un nodo es rojo, sus hijos deben ser siempre

negros (aunque lo opuesto no necesariamente es cierto).

4)Cualquier camino de la raíz a una hoja o a un hijo nulo, debe tener la misma cantidad de nodos negros.

El número de nodos negros desde la raíz hasta una hoja se conoce con el nombre de altura negra.

Reglas Rojo-Negro

Copyright Cenfotec S.A. 2003

• Se puede cambiar el color de los nodos.• Se pueden realizar rotaciones.

• No se permiten llaves duplicadas.

¿Cómo se cumplen las reglas?

Cambios de color

Rotaciones

Copyright Cenfotec S.A. 2003

• Cambio de colores en la ruta hacia el lugar de inserción.– Regla de Oro: si se encuentra un nodo negro con

dos hijos rojos se debe cambiar el color de todos (a menos de que el padre sea la raíz).

– Altura negra queda intacta.• El nodo a insertar siempre es rojo.• Regla de Plata: un árbol binario completo se debe

colorear siempre negro.

Manteniendo las reglas Rojo-Negro

Copyright Cenfotec S.A. 2003

Regla de Oro

M

D Q

B G O Z

insertar A

Copyright Cenfotec S.A. 2003

Regla de Oro (cont.)

M

D Q

B G

A

O Z

Copyright Cenfotec S.A. 2003

Regla de Oro (cont.)

M

D Q

B G

A

O Z

Copyright Cenfotec S.A. 2003

Regla de Oro (cont.)

M

D Q

B G

A

O Z

Copyright Cenfotec S.A. 2003

Regla de Oro (cont.)

M

D Q

B G

A

O Z

Copyright Cenfotec S.A. 2003

Regla de Plata

M

D Q

B G O Z

Árbol binario completo: todas las hojas están al mismo nivel y cada nodo no hoja tiene 2 hijos.

Copyright Cenfotec S.A. 2003

Regla de Plata (cont.)

M

D Q

B G

A

O Z

Copyright Cenfotec S.A. 2003

• Sea X es el nodo insertado, P su padre y G su abuelo.• X puede ser un nieto interno o externo.• Casos de inserción:

– Posibilidad 1: P es negro. No hay problema.– Posibilidad 2: P es rojo y X es externo.

• Cambiar el color de G.• Cambiar el color de P.• Rotar el abuelo.

Rotaciones una vez insertado el nodo

Copyright Cenfotec S.A. 2003

– Posibilidad 3: P es rojo y X es interno.• Cambiar el color de G.• Cambiar el color de X.• Rotar el padre.• Rotar el abuelo.

Rotaciones una vez insertado el nodo

Copyright Cenfotec S.A. 2003

• Ejercicio 1– Realizar las siguientes inserciones:

2,25,13,8,9,15,28,35,1,10,22,12– Borrar el nodo 12

• Ejercicio 2– Realizar las siguientes inserciones:

10,11,12,13,14,15,27,5,18,37,1,7,40– Borrar el nodo 10

• Ejercicio 3– Realizar las siguientes inserciones:

A,Z,Q,W,E,R,F,G,H,Y,B,M,P,L,C

Ejercicios

Copyright Cenfotec S.A. 2003

FIN