codigo 1
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();
}
}
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();
}
}
codigo 2
public class BTreeException extends Exception {
public BTreeException (String mensaje) {
super(mensaje);
}
}
codigo 3
public class Trabalenguas {
public static void main(String args[]) {
BTree trabalenguas, subarbol, temporal;
try {
trabalenguas= new BTree("Tres");
subarbol= new BTree("tristes");
trabalenguas.insertar(subarbol, BTree.LADO_IZDO);
temporal= new BTree("tigres");
trabalenguas.insertar(temporal, BTree.LADO_DRCHO);
temporal= new BTree("comían");
subarbol.insertar(temporal, BTree.LADO_IZDO);
temporal= new BTree("trigo");
subarbol.insertar(temporal, BTree.LADO_DRCHO);
} catch (BTreeException ex) {
System.out.println(ex.getMessage());
return;
}
trabalenguas.imprimePreOrden();
System.out.println("------------------");
trabalenguas.imprimeEnOrden();
System.out.println("------------------");
trabalenguas.imprimePostOrden();
System.out.println("------------------");
System.out.println("------------------");
try {
subarbol= trabalenguas.extraer(BTree.LADO_IZDO);
} catch (BTreeException ex) {
System.out.println(ex.getMessage());
return;
}
trabalenguas.imprimePreOrden();
}
}
No hay comentarios:
Publicar un comentario