rendered paste bodypackage practicoppr;
/*
* Clase arbol
*/
public class Arbol
{
private Nodo raiz;
private boolean insert(Nodo p, Nodo n)
{
Nodo aux;
if(n.getInfo() > p.getInfo())
{
if(p.getDerecha() == null)
{
aux = new Nodo(n);
p.setDerecha(aux);
return true;
}
else
return insert(p.getDerecha(),n);
}
else
if(n.getInfo() < p.getInfo())
{
if(p.getIzquierda() == null)
{
aux = new Nodo(n);
p.setIzquierda(aux);
return true;
}
else
return insert(p.getIzquierda(),n);
}
else
return false;
}
private String preOrden(Nodo p)
{
String aux = new String();
if(p != null)
{
aux = p.toString();
aux = aux + preOrden(p.getIzquierda());
aux = aux + preOrden(p.getDerecha());
}
return aux;
}
private String postOrden(Nodo p)
{
String aux = new String();
if(p != null)
{
aux = postOrden(p.getIzquierda());
aux = aux + postOrden(p.getDerecha());
aux = aux + p.toString();
}
return aux;
}
private String cenOrden(Nodo p)
{
String aux = new String();
if(p != null)
{
aux = cenOrden(p.getIzquierda());
aux = aux + p.toString();
aux = aux + cenOrden(p.getDerecha());
}
return aux;
}
/*
private String preOrdenVisita(Nodo p)
{
String aux = new String();
if(p != null)
{
aux = p.mostrarInformacion();
aux = aux + preOrdenVisita(p.getIzquierda());
aux = aux + preOrdenVisita(p.getDerecha());
}
return aux;
}
private String postOrdenVisita(Nodo p)
{
String aux = new String();
if(p != null)
{
aux = postOrdenVisita(p.getIzquierda());
aux = aux + postOrdenVisita(p.getDerecha());
aux = aux + p.mostrarInformacion();
}
return aux;
}
private String cenOrdenVisita(Nodo p)
{
String aux = new String();
if(p != null)
{
aux = cenOrdenVisita(p.getIzquierda());
aux = aux + p.mostrarInformacion();
aux = aux + cenOrdenVisita(p.getDerecha());
}
return aux;
}
*/
private boolean busc(Nodo p, Correspondencia c)
{
boolean aux = false;
if(p != null)
{
if(p.getInfo() == c.getNroDeCasa())
aux = true;
else
{
aux = busc(p.getIzquierda(),c);
if(aux == false)
aux = busc(p.getDerecha(),c);
}
}
return aux;
}
private int alt(Nodo p)
{
int altura = 0;
if(p != null)
{
int a1, a2;
a1 = 1 + alt(p.getIzquierda());
a2 = 1 + alt(p.getDerecha());
//retornar de las dos, la mayor
if(a1>a2)
altura = a1;
else
altura = a2;
}
return altura;
}
public Arbol(Nodo r)
{
raiz = r;
}
public void setRaiz(Nodo r)
{
raiz = r;
}
public Nodo getRaiz()
{
return raiz;
}
public boolean insertar(Nodo n)
{
if(raiz == null)
{
raiz = new Nodo(n);
return true;
}
else
return insert(raiz,n);
}
public boolean insertar(Correspondencia c)
{
Nodo n = new Nodo(c);
if(raiz == null)
{
raiz = new Nodo(n);
return true;
}
else
return insert(raiz,n);
}
public String toString(int tipo) // 1 preorden, 2 postorden, 3 ordencentral
{
String aux = new String();
if(raiz != null)
{
switch(tipo)
{
case 1:
aux = preOrden(raiz);
break;
case 2:
aux = postOrden(raiz);
break;
case 3:
aux = cenOrden(raiz);
break;
default:
aux = "";
}
}
else
aux = "";
return aux;
}
/*
public String mostrarVisita(int tipo) // 1 preorden, 2 postorden, 3 ordencentral
{
String aux = new String();
if(raiz != null)
{
switch(tipo)
{
case 1:
aux = preOrdenVisita(raiz);
break;
case 2:
aux = postOrdenVisita(raiz);
break;
case 3:
aux = cenOrdenVisita(raiz);
break;
default:
aux = "";
}
}
else
aux = "-- No hay Correspondencias ingresados --";
return(aux);
}
*/
public String mostrarVisita(int tipo){
String aux = new String();
aux = "---";
return(aux);
}
public boolean buscar(Correspondencia c)
{
if(raiz.getInfo() == c.getNroDeCasa()) // el valor buscado está en la raíz
return true;
else // no esta en la raiz, hay que seguir buscando
return busc(raiz,c);
}
public int altura()
{
return alt(raiz);
}
public float sumarPeso() {
return(0);
}
}