Professional Documents
Culture Documents
import java.util.ArrayList;
public class ArbolNario
{
public Nodo raiz;
Nodo nodoActual;
private int contPostOrden=0;
private int contPreOrden=0;
private ArrayList indexNodos= new ArrayList();
public ArbolNario()
{
raiz=null;
}
public void insertarHijo(String padre, String info)
{
Nodo aux=new Nodo(info);
if(raiz==null)
{
raiz=aux;
this.preorden();
this.postorden();
//System.out.println("Raiz insertada " + info);
}
else if(padre.equals(""))
{
System.out.println("Padre vacio");
}
else
{
this.insertarHijo(raiz, padre, info);
this.preorden();
this.postorden();
}
}
private void insertarHijo(Nodo nodoActual,String padre, String theInfo)
{
if(nodoActual.getInfo().equals(padre))
{
nodoActual.nodosHijos.add(new Nodo(theInfo));
System.out.println("Nodo insertado= " + theInfo);
}
else
for(int i=0; i< nodoActual.nodosHijos.size();i++)
this.insertarHijo((Nodo)nodoActual.nodosHijos.get(i), padre, theInfo);
}
public void preorden()
{
contPreOrden=0;
this.preorden(raiz);
}
}
public void imprimirIndexCompleto()
{
Index index=null;
System.out.println("num index " + indexNodos.size());
for(int i=0; i< indexNodos.size();i++)
{
index=(Index) indexNodos.get(i);
System.out.println("Nodo " + index.getInfoNodo()+ " Preorden {" + index.getIndex
Preorden() + "} PostOrden {" + index.getIndexPostOrden() + "}" );
}
}
public void getIndex(String nodoInfo)
{
Index index;
boolean exist=false;
for(int i=0; i< indexNodos.size();i++)
{
index=(Index)indexNodos.get(i);
if(index.getInfoNodo().equals(nodoInfo))
{
System.out.println("Nodo " + index.getInfoNodo()+ " Preorden {" + index.getIndex
Preorden() + "} PostOrden {" + index.getIndexPostOrden() + "}" );
exist=true;
}
}
if(!exist)
{
System.out.println("No se ha encontrado el nodo buscado");
}
}
public void imprimirArbol(ArbolNario arbol)
{
this.imprimirNodo(arbol.raiz);
}
private void imprimirNodo(Nodo nodoActual)
{
Nodo aux=null;
//System.out.println("Nodo Papa: " + nodoActual.getInfo());
for(int i=0; i< nodoActual.nodosHijos.size();i++)
{
aux=(Nodo)nodoActual.nodosHijos.get(i);
System.out.println("Nodo Papa: " + nodoActual.getInfo()+ " -- Nodo hijo: " + aux
.getInfo());
this.imprimirNodo(aux);
}
}
}
//Clase Index
package ARBOL;
public class Index
{
private int indexPreorden=-1;
}
//Clase Nodo
package ARBOL;
import java.util.ArrayList;
public class Nodo
{
public ArrayList nodosHijos= new ArrayList();
private String info="";
private int preorden=0;
private int postOrden=0;
public Nodo(String theInfo)
{
this.setInfo(theInfo);
}
public String getInfo()
{
return this.info;
}
public void setInfo(String theInfo)
{
this.info=theInfo;
}
public int getPostOrden() {
return postOrden;
}
public void setPostOrden(int postOrden) {
this.postOrden = postOrden;
}
public int getPreorden() {
return preorden;
}
public void setPreorden(int preorden) {
this.preorden = preorden;
}
}