Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/06/2010, 14:04
krlosva
 
Fecha de Ingreso: abril-2005
Mensajes: 151
Antigüedad: 19 años
Puntos: 1
Respuesta: Crear Arbol binario de forma recursiva a partir de un vector en preorden

Hola de nuevo!!
Gracias a todos los que habeis leido el post.
Finalmente he conseguido dar con el eslabon perdido.
Os pego y explico lo que pasaba por si puede ayudar a alguien en unfuturo.

template <class T>
arbin<T> CrearArbol(arbin<T> &a, Tinfo* v, int n, int &x){

if(x < n)
{
arbin<T> a(v[x]);
if(v[x].tipo == 0)
{
a.Izquierdo() = CrearArbol(a, v ,n ,++x);
a.Derecho() = CrearArbol(a, v, n, ++x);
}
return a;
}
}


Lo importante era pasar la x por referencia, ya que izquierdo y derecho la incrementan, pero individualmente. Volvia hacia atras cada vez que se llamaba a CrearArbol desde derecho. Creo que no me he explicado muy bien...pero la funcion va muy muy bien.

Saludos!!