Está en la página 1de 4

---------- primera clase

public class BTree {


private BTree izquierda= null;
private BTree derecha= null;
private Object elemento;

public static int LADO_IZDO= 1;


public static int LADO_DRCHO= 2;

public BTree(Object elemento) {


this.elemento = elemento ;
}

public Object getElement() {


return elemento;
}

public BTree getIzquierda() {


return izquierda;
}

public BTree getDerecha() {


return derecha;
}

public void insertar(BTree tree, int lado) throws BTreeException {

if (lado==LADO_IZDO) {
if (izquierda==null) izquierda= tree;
else throw new BTreeException("Ya hay un árbol enlazado");
} else if (lado==LADO_DRCHO) {
if (derecha==null) derecha= tree;
else throw new BTreeException("Ya hay un árbol enlazado");
} else throw new BTreeException("Lado incorrecto");

public BTree extraer(int lado) throws BTreeException {


BTree subarbol;

if (lado==LADO_IZDO) {
subarbol= izquierda;
izquierda= null;
} else if (lado==LADO_DRCHO) {
subarbol= derecha;
derecha= null;
} else throw new BTreeException("Lado incorrecto");

return subarbol;
}

public void imprimePreOrden() {


System.out.println(elemento);
if (izquierda!=null) izquierda.imprimePreOrden();
if (derecha!=null) derecha.imprimePreOrden();
}

public void imprimePostOrden() {


if (izquierda!=null) izquierda.imprimePostOrden();
if (derecha!=null) derecha.imprimePostOrden();
System.out.println(elemento);
}

public void imprimeEnOrden() {


if (izquierda!=null) izquierda.imprimeEnOrden();
System.out.println(elemento);
if (derecha!=null) derecha.imprimeEnOrden();
}
}

------ segunda clase

public class BTreeException extends Exception {


public BTreeException (String mensaje) {
super(mensaje);
}
}

--------tercera clase

public class family {


public static void main(String args[]) {
BTree family, subarbol, temporal;

try {
family= new BTree("abuelos");
subarbol= new BTree("hijo cesar");
family.insertar(subarbol, BTree.LADO_IZDO);
temporal= new BTree("hija lorena");
family.insertar(temporal, BTree.LADO_DRCHO);
temporal= new BTree("hijo kevin");
subarbol.insertar(temporal, BTree.LADO_IZDO);
temporal= new BTree("hijo jael");
subarbol.insertar(temporal, BTree.LADO_DRCHO);

} catch (BTreeException ex) {


System.out.println(ex.getMessage());
return;
}
family.imprimePreOrden();
System.out.println("------------------");
family.imprimeEnOrden();
System.out.println("------------------");
family.imprimePostOrden();

System.out.println("------------------");
System.out.println("------------------");

try {
subarbol= family.extraer(BTree.LADO_IZDO);
} catch (BTreeException ex) {
System.out.println(ex.getMessage());
return;
}

family.imprimePreOrden();

}
}

También podría gustarte