"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Implementación de rotaciones

Implementación de rotaciones

Publicado el 2024-08-01
Navegar:944

Un árbol desequilibrado se equilibra realizando una operación de rotación adecuada. La sección Reequilibrio de árboles ilustra cómo realizar rotaciones en un nodo. El siguiente código proporciona el algoritmo para la rotación de LL, como se ilustra en la Figura siguiente.

1 balanceLL(TreeNode A, TreeNode parentOfA) {
2 Sea B el hijo izquierdo de A.
3
4 si (A es la raíz)
5 Sea B la nueva raíz
6 más {
7 si (A es hijo izquierdo de parentOfA)
8 Sea B un hijo izquierdo de parentOfA;
9 más
10 Sea B el hijo correcto de parentOfA;
11 }
12
13 Haga de T2 el subárbol izquierdo de A asignando B.right a A.left;
14 Haga que A sea el hijo correcto de B asignando A a B.right;
15 Actualizar la altura del nodo A y del nodo B;
16 } // Fin del método

Implementing Rotations

Tenga en cuenta que la altura de los nodos A y B se puede cambiar, pero las alturas de otros nodos en el árbol no se cambian. Puedes implementar las rotaciones RR, LR y RL de manera similar.

Declaración de liberación Este artículo se reproduce en: https://dev.to/paulike/implementing-rotations-m91?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3