Sei sulla pagina 1di 4

PROGRAMACION ORINTADA A OBJETOS

CASO PRÁCTICO: Arboles binarios en Java

Clase nodo
public class Nodo {
private Nodo Izq;
private Nodo Der;
private Object dato;

public Nodo(Object dato) {


this.dato = dato;
this.Der=this.Izq=null;
}

public Nodo getIzq() {


return Izq;
}

public void setIzq(Nodo Izq) {


this.Izq = Izq;
}

public Nodo getDer() {


return Der;
}

public void setDer(Nodo Der) {


this.Der = Der;
}

public Object getDato() {


return dato;
}
public void setDato(Object dato) {
this.dato = dato;
}

public void inserta(Nodo nod,int lado){


//si es izquierdo
if(lado==1){
if(this.Izq==null)
this.Izq=nod;
else
System.out.println("Ya hay un arbol enlazado");
}else
{
if(lado==2){
if(this.Der==null)
this.Der=nod;
else
System.out.println("Ya hay un arbol enlazado");
}else
System.out.println("Lado incorrecto");
}
}
public Nodo extraer(int lado){
Nodo subarbol=null;
if(lado==1){
subarbol=this.Izq;
this.Izq=null;
}else
{
if(lado==2){
subarbol=this.Der;
this.Der=null;
}else
System.out.println("Lado incorrecto");
}
return subarbol;
}
public void imprimePreOrden() {
System.out.println(this.dato);
if (this.Izq!=null)
this.Izq.imprimePreOrden();
if (this.Der!=null)
this.Der.imprimePreOrden();
}
public void imprimePostOrden() {
if (this.Izq!=null)
this.Izq.imprimePostOrden();
if (this.Der!=null)
this.Der.imprimePostOrden();
System.out.println(dato);
}

public void imprimeEnOrden() {


if (this.Izq!=null)
this.Izq.imprimeEnOrden();
System.out.println(dato);
if (this.Der!=null)
this.Der.imprimeEnOrden();
}
}
Clase Principal
public class Principal {
public static void main(String[] args) {
Nodo Trabalengua=new Nodo("Tres");
Nodo Subarbol;
Nodo temporal;

Subarbol=new Nodo("Tristes");
Trabalengua.inserta(Subarbol, 1);
temporal=new Nodo("Tigres");
Trabalengua.inserta(temporal, 2);

temporal=new Nodo("Comian");
Subarbol.inserta(temporal, 1);

temporal=new Nodo("Trigo");
Subarbol.inserta(temporal, 2);

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

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

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

Potrebbero piacerti anche