Arboles en java

Hola, quiero recorrer un árbol en java de modo que me devuelva los nodos que aun no hayan sido analizados, sin embargo, no lo puedo hacer recursivamente (algo como esto)
public String preorden(Rama nodo)
{
int i;
if (nodo == null)
return null;
return nodo.elemento;
preorden(nodo.izq);
preorden(nodo.der);
}
Lo que pasa es que necesito obtener esos elementos desde fuera, ¿qué puedo hacer?

1 respuesta

Respuesta
1
Espero que esto te sirva:
/************************************************************
* Metodo: concatenarInOrden( Nodo p ), StringBuffer. *
* Descripcion: crea una variable StringBuffer c en la cual *
* son concatenadas las infos de los nodos del *
* arbol en el siguiente orden: hijo izquierdo *
* , padre e hijo derecho. *
* Proposito: concatenar los nodos del arbol en in-orden. *
************************************************************/
private StringBuffer concatenarInOrden ( Nodo p ) {
StringBuffer c = new StringBuffer("");
if ( p!=null ) {
c = c.append( concatenarInOrden( p.getIzquierda() ) );
c = c.append( p.getInfo()+"," );
c = c.append( concatenarInOrden( p.getDerecha() ) );
}
return c;
}
/************************************************************
* Metodo: concatenarPreOrden( Nodo p ), StringBuffer. *
* Descripcion: crea una variable StringBuffer c en la cual *
* son concatenadas las infos de los nodos del *
* arbol en el siguiente orden: hijo izquierdo *
* , hijo derecho y padre. *
* Proposito: concatenar los nodos del arbol en pre-orden. *
************************************************************/
private StringBuffer concatenarPreOrden ( Nodo p ) {
StringBuffer c = new StringBuffer("");
if ( p!=null ) {
c = c.append( concatenarInOrden( p.getIzquierda() ) );
c = c.append( concatenarInOrden( p.getDerecha() ) );
c = c.append( p.getInfo()+"," );
}
return c;
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas