private NodoAvl rotacionID(NodoAvl n, NodoAvl n1) { NodoAvl n2; n2 = (NodoAvl)n1.subarbolDch(); n.ramaIzq(n2.subarbolDch()); n2.ramaDch(n); n1.ramaDch(n2.subarbolIzq()); n2.ramaIzq(n1); // Se actualizan para la equilibracion if (n2.fe == +1) { n1.fe = -1; } else { n1.fe = 0; } if (n2.fe == -1) { n.fe = 1; } else { n.fe = 0; } n2.fe = 0; return(n2); }
private NodoAvl rotacionDI(NodoAvl n, NodoAvl n1) { NodoAvl n2; n2 = (NodoAvl)n1.subarbolIzq(); n.ramaDch(n2.subarbolIzq()); n2.ramaIzq(n); n1.ramaIzq(n2.subarbolDch()); n2.ramaDch(n1); // factores de equilibrio en actualizacion if (n2.fe == +1) { n.fe = -1; } else { n.fe = 0; } if (n2.fe == -1) { n1.fe = 1; } else { n1.fe = 0; } n2.fe = 0; return(n2); }
private NodoAvl rotacionDD(NodoAvl n, NodoAvl n1) { n.ramaDch(n1.subarbolIzq()); n1.ramaIzq(n); // Verifica que que el arbol este en equilibrio if (n1.fe == +1) // de ser asi se cumplira esta funcion { n.fe = 0; n1.fe = 0; } else { n.fe = +1;//De lo contrario hara una rotacion derecha,derecha n1.fe = -1; } return(n1); }