Bueno, la verdad no se si sea ese el problema o alguna otra cosa, pero encuentro muy posible que esa sea la causa.
Verán, necesito hacer una implementación de arbol usando templates (template <class t>, ya saben...). y pues todo parece ir bien hasta que intento recorrerlo para cualquier cosa (imprimirlo, por ejemplo). Aqui viene la funcion:
template<class T>
void imprimeArbol(arbol<T> a, nodoA<T> * inicio)
{
T temp;
nodoA<T> * temp1;
a.devolver(&temp, inicio);
cout<<temp<<endl;
if (a.tieneHijo(inicio))
{
temp1=a.irHijo(inicio);
imprimeArbol (a, temp1);
}
if (a.tieneHerm(inicio))
{
temp1= a.irHerm(inicio);
imprimeArbol (a, temp1);
}
}
ninguna de las funciones que aqui uso (tieneHijo, tieneHermano, devolver...) afecta al arbol - es decir, cambiar alguno de sus valores -, pero aún asi esta función me causa error en tiempo de ejecución y he notado que lo que ocurre es que las referencias a los demás nodos son "borradas" cuando se regresa a una llamada anterior de imprimeArbol.
Tal vez sea necesario postear el resto de la implementación, si es así diganme. En fin, cualquier ayuda es bienvenida