¿Cómo puedo imprimir los datos de un árbol en un método de cadena?
Tengo este método que imprime el contenido del árbol Avl.
public String recorrerEnOrden() {
return recorrerEnOrden(raiz);
}
private String recorrerEnOrden(NodoAvl<T> nodo) {
String cadena = "";
if (nodo != null) {
if (nodo.izquierdo != null)
recorrerEnOrden(nodo.izquierdo);
cadena +=nodo;
if (nodo.derecho != null)
recorrerEnOrden(nodo.derecho);
}
return cadena;
}
En este caso aún hay un problema, ya que estás devolviendo un nodo del árbol Avl y necesito todos los nodos del árbol Avl.
No quiero usar algún tipo de método void
davy.ai
Para imprimir todos los nodos en el árbol AVL, podemos modificar el método
traverseInOrder()
para usar un StringBuilder que almacene todos los nodos en una cadena y luego devuelva la cadena. Aquí hay una implementación de ejemplo:Este método modificado utiliza un método auxiliar
traverseInOrder(TNode<t> node, StringBuilder sb)
de manera recursiva para recorrer el árbol AVL en orden y agregar cada nodo a un StringBuilder. Finalmente, el StringBuilder se convierte en una cadena y se devuelve mediante el métodotraverseInOrder()
.