All pastes #179290 Raw Edit

Something

public text v1 · immutable
#179290 ·published 2006-09-22 02:08 UTC
rendered paste body
package 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);
        }
        
}