Viendo el video de openfing me surgió una duda con la resolución, cuando se pide memoria para el nuevo nodo y se le asigna un dato, cómo sabe el programa si ese nuevo nodo era por ejemplo el primer hijo de un nodo anterior, o el siguiente hermano, en la implementación que muestran vi que el código es correcto, pero no logro entender como se genera esa conexión entre los nodos al irlos creando, tal vez hay algo que me estoy perdiendo, si me pudieran ayudar, gracias!
Hablamos de esto, ¿no?
copia = new nodoAG ;
copia->dato = a->dato ;
copia->pH = copiaParcial (a->pH , k -1);
copia->sH = copiaParcial (a->sH , k );
En realidad no lo sabe, depende de que nosotros hagamos las cosas bien.
Por ejemplo en la llamada que tiene a->pH como parámetro, si confiamos en que la recursión funciona lo que se va a devolver es la copia de los primeros k - 1 niveles del árbol que tiene raíz en a->pH. Y eso se va a asignar al campo pH de copia.
O sea 'sabe' que es un primer hijo porque se lo estamos diciendo del lado izquierdo del operador de asignación.
Lo mismo para siguiente hermano.
¿No sé si queda claro?