Ejercicio 2.1

Re: Ejercicio 2.1

de Sofia Tito Virgilio Rodriguez -
Número de respuestas: 0

¿Por qué no querés usar funciones auxiliares?

De todas formas, pensémoslo como un problema de recursión.

Tenemos resuelto el caso base, que sucede cuando al árbol es vacío y el valor a retornar es NULL.

Luego, podemos asumir que sabemos resolver el problema para instancias más cercanas al caso base, en este caso, implica asumir que si realizamos las invocaciones:

Lista lizq = enOrden(arb->izq);

Lista lder = enOrden(arb->der);

Entonces en lizq vamos a tener la lista resultante de recorrer el subárbol izquierdo de arb en orden,

y en lder vamos a tener la lista resultante de recorrer el subárbol derecho de arb en orden.

Una vez que tenemos estas dos listas, y que además guardamos el elemento de la raíz del arbol en un nodo nuevo:

Lista* nuevo = new nodoLista;

nuevo->elem = arb->elem;

¿Cómo tenemos que integrar estas 3 partes para formar la lista que debemos retornar?