Árbol rojo-negro: rotar, insertar, eliminar operaciones; la diferencia con el árbol de búsqueda binaria equilibrado

1. La diferencia entre el árbol rojo-negro y el árbol de búsqueda binario balanceado :
árbol binario balanceado (AVL):

  • Es un árbol vacío o el valor absoluto de la diferencia de altura entre sus subárboles izquierdo y derecho no excede 1. (Totalmente equilibrado), Y los subárboles izquierdo y derecho son ambos un árbol binario equilibrado.
  • La complejidad del tiempo es tanto el mejor como el peor de los casos O(lgn).
  • Para garantizar el equilibrio absoluto, después de insertar y eliminarNecesita múltiples rotaciones para mantener el equilibrioPor lo tanto, requiere mucho tiempo.

Árbol rojo-negro:

  • El árbol rojo-negro abandonó la búsqueda del equilibrio completo,Perseguir aproximadamente el equilibrio
  • La complejidad del tiempo también es el mejor y el peor de los casos O(lgn).
  • Perseguir aproximadamente el equilibrio así,No se necesitan muchas operaciones rotativas

para resumir: El árbol AVL es adecuado para el caso en el que el número de inserciones y eliminaciones es relativamente pequeño, pero la búsqueda es grande; si el número de inserciones y eliminaciones es grande, el árbol rojo-negro es adecuado.

Referencia: ¿Cuál es la diferencia entre un árbol rojo-negro y un árbol binario equilibrado?
La diferencia entre el árbol rojo-negro y el árbol AVL (árbol binario equilibrado)

2. Naturaleza del árbol rojo-negro:
Árbol de búsqueda binaria que satisface la naturaleza roja y negra: El
Inserte la descripción de la imagen aquí
árbol rojo-negro garantiza que ninguna ruta a un nodo hoja será dos veces más larga que otras rutas, por lo que esSaldo aproximado, Como se muestra en la Figura (a).
Para facilitar el código,Utilice centinela para representar NULL, indicando el nodo padre del nodo hoja y el nodo raíz, Como se muestra en la Figura (b).
Inserte la descripción de la imagen aquí
Por lo general, solo se muestran los nodos internos:
Inserte la descripción de la imagen aquí
3. Operación de rotación: se usa para mantener la naturaleza roja y negra.
Izquierda y derecha: Después de la rotación, el empalme de nodos asegura que la naturaleza del árbol de búsqueda binaria sea fácil de entender.
Zurdo (diestro): el niño izquierdo (derecho) que se convierte en su hijo derecho (izquierdo).
Inserte la descripción de la imagen aquí
Pseudocódigo:
Inserte la descripción de la imagen aquí
4. Inserción:
Pasos:
a. Inserte el nodo hoja de acuerdo con el método de árbol de búsqueda binario;
b. Coloréelo a rojo;
c. Llame a la función de ajuste de propiedad rojo-negro para convertir el árbol en un árbol rojo-negro mediante rotación y cambio de color.
Inserte la descripción de la imagen aquí
Línea 17 del código: función de ajuste de propiedad rojo y negro:
tres tipos de situaciones:
** caso 1: el nodo tío y de z es rojo: ** ajusta el color circularmente para satisfacer la propiedad 4, hasta que el nodo padre sea negro.
Inserte la descripción de la imagen aquí
Caso 2: terc nodo y z negro yz es un hijo derecho: por L se convierte en el caso 3 .
** Caso 3: El tío y de z es negro y z es un hijo izquierdo: ** Las propiedades de rojo y negro se ajustan girando a la derecha y cambiando el color.
Inserte la descripción de la imagen aquí
Código general:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
5. La eliminación es
demasiado complicada, así que aprendamos a usarla en su trabajo. Comprender el principio de la entrevista, saber cómo utilizarlo y saber dónde estudiar.

para resumir:

1. El árbol rojo-negro persigue el equilibrio aproximado y el árbol AVL persigue el equilibrio absoluto.
2. Sobre la base del árbol de búsqueda binaria, el árbol rojo-negro satisface la naturaleza mediante la rotación de izquierda a derecha y el ajuste de color.
3. Comprender la naturaleza de los árboles rojo-negros.

Supongo que te gusta

Origin blog.csdn.net/qq_33726635/article/details/105878932
Recomendado
Clasificación