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

1 respuesta

1
Respuesta de
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 un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la pregunta que estabas buscando?
Puedes explorar otras preguntas del tema Java o hacer tu propia pregunta: