Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by Elsy ( 12 years ago )
public class ArbolAVL {

    public void rotacionID() {
        NodoAVL padre = nodo.getPadre();
        NodoAVL P = nodo;
        NodoAVL Q = (NodoAVL) P.getIzq();
        NodoAVL R = (NodoAVL) Q.getDer();
        NodoAVL B = (NodoAVL) R.getIzq();
        NodoAVL C = (NodoAVL) R.getDer();

        if (Padre != null) {
            if (Padre.getDer() == nodo) {
                Padre.setDer(R);
            } else {
                Padre.setIzq(R);
            }

        } else {
            raiz = R;
        }

        Q.setDer(B);
        P.setIzq(C);
        R.setIzq(Q);
        R.setDer(P);


        R.setPadre(Padre);
        P.setPadre(R);
        Q.setPadre(R);

        if (B != null) {
            B.setPadre(Q);
        }

        if (C != null) {
            C.setPadre(P);
        }


        switch (R.getFE()) {
            case -1:
                Q.setFE(0);
                P.setFE(1);
                break;
            case 0:
                Q.setFE(0);
                P.setFE(0);
                break;
            case 1:
                Q.setFE(-1);
                P.setFE(0);
                break;
        }
        R.setFE(0);

    }

    public void rotacionDI() { //volvetear IZq por Der
        NodoAVL padre = nodo.getPadre();
        NodoAVL P = nodo;
        NodoAVL Q = (NodoAVL) P.getDer();
        NodoAVL R = (NodoAVL) Q.getIzq();
        NodoAVL B = (NodoAVL) R.getDer();
        NodoAVL C = (NodoAVL) R.getIzq();

        if (Padre != null) {
            if (Padre.getIzq() == nodo) {
                Padre.setIzq(R);
            } else {
                Padre.setDer(R);
            }

        } else {
            raiz = R;
        }

        Q.setIzq(B);
        P.setDer(C);
        R.setDer(Q);
        R.setIzq(P);

        R.setPadre(Padre);
        P.setPadre(R);
        Q.setPadre(R);

        if (B != null) {
            B.setPadre(Q);
        }

        if (C != null) {
            C.setPadre(P);
        }


        switch (R.getFE()) {
            case -1:
                Q.setFE(0);
                P.setFE(1);
                break;
            case 0:
                Q.setFE(0);
                P.setFE(0);
                break;
            case 1:
                Q.setFE(-1);
                P.setFE(0);
                break;
        }
        R.setFE(0);

    }
    
    public static void main(String[] args) {
        Arbol AVL = new ArbolAVL(5);
        arbol.insertar(3);
        arbol.insertar(4);
        arbol.inOrden();
    }
}

 

Revise this Paste

Your Name: Code Language: