/**
* @(#)ABB.java
*
*
* @author
* @version 1.00 2010/4/29
*/
import java.util.*;
public class ABB {
static NodoArbol raiz;
public ABB()
{
raiz=null;
}
public NodoArbol Raiz()
{
return raiz;
}
public void creaRaiz (int valor)
{
raiz.setInfo(valor);
}
public void insertar(int dato)
{
NodoArbol nuevo=new NodoArbol();
nuevo.setInfo(dato);
if(raiz==null)
raiz=nuevo;
else
{
NodoArbol actual=raiz;
NodoArbol anterior=null;
while(actual!=null)
{
anterior=actual;
if(dato>actual.getInfo())
actual=actual.getHijoDer();
else
actual=actual.getHijoIzq();
}
if(dato>anterior.getInfo())
anterior.setHijoDer(nuevo);
else
anterior.setHijoIzq(nuevo);
}
}
/////////METODOS DE ORDENAMIENTO//////////
public void preorden (NodoArbol p)
{
if (p!=null)
{
System.out.print(p.getInfo()+" ");
preorden(p.getHijoIzq());
preorden(p.getHijoDer());
}
}
public void simetrico (NodoArbol p)
{
if (p!=null)
{
simetrico(p.getHijoIzq());
System.out.print(p.getInfo()+" ");
simetrico(p.getHijoDer());
}
}
public void postorden (NodoArbol p)
{
if(p!=null)
{
postorden(p.getHijoIzq());
postorden(p.getHijoDer());
System.out.print(p.getInfo()+" ");
}
}
/////////////////////////////////////////////////////////////////
public static void main (String[] args)
{
Scanner dato = new Scanner(System.in);
int a,b;
ABB A=new ABB();
do
{
System.out.println("\n\t****MENU****\n");
System.out.println(" 1. insertar nodos");
System.out.println(" 2. recorridos");
System.out.println(" 0. salir");
b=dato.nextInt();
switch (b)
{
case 1:
System.out.println("tecle el num. de nodos a insetar:");
int n=dato.nextInt();
System.out.println("tecle los nodos a insetar(distingir con un enter):");
for (int i=0;i<n;i++)
{
a= dato.nextInt();
A.insertar(a);
}
break;
case 2:
if (raiz==null)
System.out.println("*ERROR* (el arbol esta vacio)");
else
{
System.out.println("\n***Recorridos***");
System.out.println("PREORDEN:");
A.preorden(A.Raiz());
System.out.println();
System.out.println("SIMETRICO:");
A.simetrico(A.Raiz());
System.out.println();
System.out.println("POSTORDEN:");
A.postorden(A.Raiz());
System.out.println();
break;
}
}
}while(b!=0);
}
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios