Hola, nose si ya lo solucionaste, por las dudas te respondo igual.
estos serian los procedimientos para las rotaciones:
void AVLPRotarLL (AVLProgramas* &P){
AVLProgramas* aux = P->izq->der;
P->izq->der = P;
P->izq->factor = 0;
AVLProgramas* aux2 = P->izq;
P->izq = aux;
P->factor = 0;
P = aux2;
};
void AVLPRotarRR (AVLProgramas* &P){
AVLProgramas* aux = P->der->izq;
P->der->izq = P;
P->der->factor = 0;
AVLProgramas* aux2 = P->der;
P->der = aux;
P->factor = 0;
P = aux2;
};
void AVLPRotarLR (AVLProgramas* &P){
AVLPRotarRR(P->izq);
AVLPRotarLL(P);
};
void AVLPRotarRL (AVLProgramas* &P){
AVLPRotarLL(P->der);
AVLPRotarRR(P);
};
Y despues en el insertar segun el factor de balanceo que te quede ves que rotaciones debes aplicar.
Espero que te haya quedado claro, cualquier cosa pregunta.
Saludos
estos serian los procedimientos para las rotaciones:
void AVLPRotarLL (AVLProgramas* &P){
AVLProgramas* aux = P->izq->der;
P->izq->der = P;
P->izq->factor = 0;
AVLProgramas* aux2 = P->izq;
P->izq = aux;
P->factor = 0;
P = aux2;
};
void AVLPRotarRR (AVLProgramas* &P){
AVLProgramas* aux = P->der->izq;
P->der->izq = P;
P->der->factor = 0;
AVLProgramas* aux2 = P->der;
P->der = aux;
P->factor = 0;
P = aux2;
};
void AVLPRotarLR (AVLProgramas* &P){
AVLPRotarRR(P->izq);
AVLPRotarLL(P);
};
void AVLPRotarRL (AVLProgramas* &P){
AVLPRotarLL(P->der);
AVLPRotarRR(P);
};
Y despues en el insertar segun el factor de balanceo que te quede ves que rotaciones debes aplicar.
Espero que te haya quedado claro, cualquier cosa pregunta.
Saludos